[英]java While-loop statement will continue to loop but won't include my statement to exit the loop
該程序本身可以工作,但是我在循環中掙扎。 我是一個使用循環的初學者,我一直在尋找適用於我的程序類型的示例,但可惜沒有找到任何示例。
我知道循環會停止,如果體內某些東西可以使條件為“ false”,但是對於該程序,當它詢問是否要再次播放時,將決定該程序。 但是,我的程序沒有詢問用戶是否要繼續。 而且,如果用戶決定停止播放,則程序應說“謝謝您的游戲!”,而是不斷循環播放整個身體。
謝謝您的幫助!
這是我的循環:
// Start loop
while (looping == true) {
// Ask if the # > 5
System.out.println("Is your number greater than 5? (True = 1, False = 0)");
// Read in the number
numberOne = input.nextDouble();
if (numberOne == 1) { // Is the # > 7?
System.out.println("Is your number greater than 7? (True = 1, False = 0)");
numberOne = input.nextDouble();
if (numberOne == 1) { // Does the # = 8?
System.out.println("Is your number 8? (True = 1, False = 0)");
numberOne = input.nextDouble();
if (numberOne == 0) { // If # != 8, then # = 9
System.out.println("Your number is 9!");
} else {
// If answer was 8, then yay
System.out.println("Yay! Got it!");
}
} else if (numberOne == 0) { // If # !> 7, then # = 6?
System.out.println("Is your number 6? (True = 1, False = 0)");
numberOne = input.nextDouble();
if (numberOne == 0) { // If # != 6, then # = 7
System.out.println("Your number is 7!");
} else {
//If answer was 6, then yay
System.out.println("Yay! Got it!");
}
}
} else if (numberOne == 0) { // If the # !> 5, then # > 3?
System.out.println("Is your number greater than 3? (True = 1, False = 0)");
numberOne = input.nextDouble();
if (numberOne == 1) { // If true, does your number = 4?
System.out.println("Is your number 4? (True = 1, False = 0)");
numberOne = input.nextDouble();
if (numberOne == 0) { // If # != 4, then # = 5
System.out.println("Your number is 5!");
} else {
// If answer was 4, then yay
System.out.println("Yay! Got it!");
}
} else if (numberOne == 0) { // If false, # = 2?
System.out.println("Is your number 2? (True = 1, False = 0)");
numberOne = input.nextDouble();
if (numberOne == 0) { // If # != 2, then # = 3
System.out.println("Your number is 3!");
} else {
// If answer is 2, then yay
System.out.println("Yay! Got it!");
}
// Ask user if they want to play again
System.out.println("Would you like to play again? (Yes = 1, No = 0)");
numberOne = input.nextDouble();
System.out.println("Thanks for playing!");
}
}
} // end loop
// Close input
input.close();
} // end method
} // end class
因為您沒有更改looping
變量值。 然后將下面的代碼移到else if()
塊之外。
...
System.out.println("Would you like to play again? (Yes = 1, No = 0)");
looping = input.nextBoolean();
if (looping == false) {
System.out.println("Thanks for playing!");
}
...
您的代碼將如下所示
// Start loop
while (looping == true) {
// Ask if the # > 5
System.out.println("Is your number greater than 5? (True = 1, False = 0)");
// Read in the number
numberOne = input.nextDouble();
if (numberOne == 1) { // Is the # > 7?
System.out.println("Is your number greater than 7? (True = 1, False = 0)");
numberOne = input.nextDouble();
if (numberOne == 1) { // Does the # = 8?
System.out.println("Is your number 8? (True = 1, False = 0)");
numberOne = input.nextDouble();
if (numberOne == 0) { // If # != 8, then # = 9
System.out.println("Your number is 9!");
} else {
// If answer was 8, then yay
System.out.println("Yay! Got it!");
}
} else if (numberOne == 0) { // If # !> 7, then # = 6?
System.out.println("Is your number 6? (True = 1, False = 0)");
numberOne = input.nextDouble();
if (numberOne == 0) { // If # != 6, then # = 7
System.out.println("Your number is 7!");
} else {
//If answer was 6, then yay
System.out.println("Yay! Got it!");
}
}
} else if (numberOne == 0) { // If the # !> 5, then # > 3?
System.out.println("Is your number greater than 3? (True = 1, False = 0)");
numberOne = input.nextDouble();
if (numberOne == 1) { // If true, does your number = 4?
System.out.println("Is your number 4? (True = 1, False = 0)");
numberOne = input.nextDouble();
if (numberOne == 0) { // If # != 4, then # = 5
System.out.println("Your number is 5!");
} else {
// If answer was 4, then yay
System.out.println("Yay! Got it!");
}
} else if (numberOne == 0) { // If false, # = 2?
System.out.println("Is your number 2? (True = 1, False = 0)");
numberOne = input.nextDouble();
if (numberOne == 0) { // If # != 2, then # = 3
System.out.println("Your number is 3!");
} else {
// If answer is 2, then yay
System.out.println("Yay! Got it!");
}
}
}
// Ask user if they want to play again
System.out.println("Would you like to play again? (Yes = 1, No = 0)");
looping = input.nextBoolean();
if (looping == false) {
System.out.println("Thanks for playing!");
}
}
// Close input
input.close();
}
}
// for(intialise ; testing Condition; increment/decrement)
for (int i = 0; i < 5; i++) {
}
// while(condition)
// first the condition get evaluated, if true the loop body is executed
int i = 0;
while (i < 5) {
// logic goes in here
i++;
}
// do{
// your code goes in here
// }while(condition);
// the loop gets executed once, then the condition is evaluated, if true
// loop is executed again
i = 0;
do {
} while (i < 5);
您可以在情況下使用while或do while循環。
looping = true;
while (looping) {
// your code
// Ask user if they want to play again
System.out.println("Would you like to play again? (Yes = 1, No = 0)");
numberOne = input.nextInt();
//You can use a simple if else statement also
if(numberOne == 1){
looping = true;
}
else{
lopping = false;
}
}
// if you wish to use a do while loop:
do {
// your code
numberOne = input.nextInt();
// ternary operator
looping = (numberOne == 1) ? true : false;
} while (looping);
三元操作者:
是一個非常有用的運算符,我們有時可以使用它在一行中壓縮if-else塊。
以找到兩個數字最大的情況為例。
if(a > b){
max = a;
}else{
max = b;
}
使用三元運算符,可以簡化並壓縮為一行:
max = (a>b)?a:b;
通用語法是
(cond)?(value to return when cond true):(value to return if cond false);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.