我写了一个程序在Java中比较两个变量值,X和Y. 当我输入相同的数字为X和Y在循环的第一次尝试它说匹配和终止。但是如果它在第一个循环中返回“false”,然后在下一个返回“true”,它不会终止并继续,就好像“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();
}
}
}
但是当我添加一个“Break”时只要它返回一个“真”值,关键字就会终止。请给我一些解释。
public static void main(String[] args) {
// TODO Auto-generated method stub
while(b ==false){
mymethod();
Break;
}
那工作谢谢你。我也发现了另一种使它工作的方法: \t do { \t mymethod(); (b); \t} } 但我寻求解释它保持循环的原因! –
不在main()或mymethod()中设置b的值。 –