Я написал программу в java, которая сравнивает значения переменных буксировки, X и Y. , когда я вводил одно и то же число для X и Y в первой попытке цикла, говорит Матч и завершает работу. Но если он вернул «false» в первом цикле, а затем вернул «истину» в следующем, он не заканчивается и продолжает, как если бы «b» имеет значение «false».В то время как цикл не заканчивается
import java.util.Scanner;
public class clads {
//Variables
public static int y;
public static int x;
static boolean b = mymethod() ;
//MainProcess
public static boolean mymethod() {
Scanner myscanner = new Scanner(System.in);
System.out.println("put a number for X");
x = myscanner.nextInt();
System.out.print("put a number for Y");
y = myscanner.nextInt();
if (y==x){
System.out.println("match");
return true;
}else{
System.out.println("Mismatch, Redo");
return false;
}
}
public static void main(String[] args) {
// TODO Auto-generated method stub
while(b ==false){
mymethod();
}
}
}
Но когда я добавил «Перерыв»; ключевое слово завершается всякий раз, когда оно возвращает «истинное» значение. Могу ли я получить объяснение, пожалуйста.
public static void main(String[] args) {
// TODO Auto-generated method stub
while(b ==false){
mymethod();
Break;
}
этот работа спасибо. и я также нашел другой способ заставить его работать: \t do { \t mymethod(); \t} в то время как (b); \t} } , но я ищу объяснение о причине, которая держит его зацикливание! –
Не задает значение b в main() или mymethod(). –