我寫了一個程序在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的值。 –