Member 13713319 Ответов: 3

Что именно неисправно в этом коде


import java.util.Scanner;



public class systemsimulate {
	
public static void main(String[] args) {
	
	String y,ynext;
	
	Scanner scm=new Scanner(System.in);
	System.out.println("enter the initial  state");
	y=scm.next();

	
	System.out.println("enter the disturbance");
    String d=scm.next();
	
if(y=="A" && d=="1"){
		System.out.println("A");
	}
}
}


когда я запускаю эту программу, она не печатает ispite og, дающий допустимые входные параметры.почему это условие не оценивается, может ли кто-нибудь сказать мне об ошибке

Что я уже пробовал:

я попытался использовать char вместо строкового формата, но он все еще не работает.я также отобразил indivsual y и d .он был отображен, но он не выполняет код в цикле if

3 Ответов

Рейтинг:
2

Patrice T

Запустить свой код в отладчик и проверить y и d содержит.
Обратите особое внимание на переменные, если y="A ", он будет печатать так, как вы ожидаете, но текст не будет работать.

Существует инструмент, который позволяет вам видеть, что делает ваш код, его имя отладчик Это также отличный инструмент обучения, потому что он показывает вам реальность, и вы можете увидеть, какие ожидания соответствуют реальности.
Когда вы не понимаете, что делает ваш код или почему он делает то, что он делает, ответ таков: отладчик.
Используйте отладчик, чтобы увидеть, что делает ваш код. Просто установите точку останова и посмотрите, как работает ваш код, отладчик позволит вам выполнять строки 1 на 1 и проверять переменные по мере их выполнения.

Отладчик - Википедия, свободная энциклопедия[^]
http://docs.oracle.com/javase/7/docs/technotes/tools/windows/jdb.html[^]
https://www.jetbrains.com/idea/help/debugging-your-first-java-application.html[^]
Отладчик здесь, чтобы показать вам, что делает ваш код, и ваша задача-сравнить с тем, что он должен делать.
В отладчике нет никакой магии, он не находит ошибок, он просто помогает вам. Когда код не делает того, что ожидается, вы близки к ошибке.


Рейтинг:
1

OriginalGriff

Начните с использования отладчика - поставьте точку останова на if постройте и запустите свой код. Когда отладчик попадет в строку, он остановится, и вы сможете посмотреть, что именно находится внутри y и d перед проверкой состояния.
Мы не можем сделать это за вас: мы не можем запустить ваш код точно в тех условиях, которые вы делаете, мы можем видеть, что вы печатаете!


Рейтинг:
0

Jochen Arndt

То == операторные тесты на эталонное равенство. Это означает, что он проверяет, является ли это тот же самый объект. Но вы хотите проверить равенство значений (если два объекта имеют одно и то же значение). Смотреть также Сравнение объектов - Wikibooks, открытые книги для открытого мира[^].

Для строк используйте equals или compareTo методы (см. Сравнение строк и частей строк (учебники Java™ > изучение языка Java > числа и строки)[^]).


CPallini

5.