运行程序,直到满足特定条件



我希望这段代码继续运行,只要用户在提示时不断输入"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;
            }
        }
    }
}

你想要

if(ch!='y' && ch!='Y'){

if(ch!='y' || ch!='Y'){
if (ch!='y' || ch!='Y') 

将永远是真的。

改为将||更改为&&,使其如下所示:

if (ch!='y' && ch!='Y') 

if条件是错误的 - 它将始终计算为true。由于一个角色不能同时yY,因此它将始终"不等于y或不等于Y"。

相反,您需要一个条件来检查字符是否不等于y不等于Y

if( ch!='y' && ch!='Y') {
    break;
}

相关内容

  • 没有找到相关文章

最新更新