我希望此代码继续运行,只要用户在提示时继续输入“Y”或“y”,任何其他输入都应该退出程序。正如我的代码现在,无论输入什么,它只运行一次。我该如何解决?
这是我的代码:
import java.util.Scanner;
public class zigzag {
public static void main(String[] args) {
Scanner myScanner, sc;
myScanner = new Scanner(System. in );
while (true) {
System.out.print("Enter an integer between 3 and 33: ");
int nStars = myScanner.nextInt();
if (nStars > 33 || nStars < 3) {
System.out.println("Sorry, this input is out of the accepted range");
} else {
for (int i = 0; i < nStars; i++) {
System.out.print("*");
}
System.out.println(" ");
}
for (int j = 0; j < nStars - 2; j++) {
System.out.print(" ");
for (int k = 0; k <= j - 1; k++) {
System.out.print(" ");
}
System.out.println("*");
}
for (int g = 0; g < nStars; g++) {
System.out.print("*");
}
System.out.println(" ");
System.out.print("Enter 'Y' or 'y' to go again: ");
char ch = myScanner.next().charAt(0);
if (ch != 'y' || ch != 'Y') {
break;
}
}
}
}
答案 0 :(得分:2)
你想要
if(ch!='y' && ch!='Y'){
不
if(ch!='y' || ch!='Y'){
答案 1 :(得分:1)
if (ch!='y' || ch!='Y')
总是如此。
将||
更改为&&
,使其看起来像:
if (ch!='y' && ch!='Y')
答案 2 :(得分:0)
if
条件错误 - 它将始终评估为true
。由于某个角色不能同时为y
和Y
,因此始终为&#34;不等于y
或不等于Y
。
相反,您需要一个条件来检查该字符是否不等于y
且不等于Y
:
if( ch!='y' && ch!='Y') {
break;
}