Java中的char问题



我正在练习,我想创建一个带有无限循环的代码,但我的问题是我不知道如何比较字符或从键盘读取字符。所以,到目前为止我已经完成了下面的代码,有什么建议吗?

    Scanner keyboard = new Scanner(System.in);
        System.out.println("Guess my favorite character: ");
        String letter = keyboard.nextLine();
        char secret = 'a';
        while (true) {
            System.out.println(" Enter guess:");
            String guess = keyboard.nextLine();
            for (int i = 0; i < guess.length(); i++) {
                if (guess.chartAt(i).equals('a')) {
                    break;
                }
            }
           System.out.println("YOU got it!"); 
        }
    }
}

break只跳出for循环,所以你有一个无限的while true循环。您可能想尝试这种方式。

    Scanner keyboard = new Scanner(System.in);
    System.out.println("Guess my favorite character: ");
    String letter = keyboard.nextLine();
    char secret = 'a';
    while (true) {
        System.out.println(" Enter guess:");
        String guess = keyboard.nextLine();
        for (int i = 0; i < guess.length(); i++) {
            if (guess.chartAt(i).equals('a')) {
                System.out.println("YOU got it!"); 
                return;
            }
        }
    }

尝试这样做;

String secret = "a";
Boolean isFounded = false;
while (true) {
    System.out.println(" Enter guess:");
    String guess = keyboard.nextLine();
    for (int i = 0; i < guess.length(); i++) {
         if (guess.equals(secret)) {
              System.out.println("YOU got it!"); 
              isFounded = true;
         }
         if(isFounded) break;
     }
     if(isFounded) break;
}

这里只有一个循环可以尝试一下。

  String secret = "a";
  String guess = "";
  Scanner keyboard = new Scanner(System.in);
  while(!guess.contains(secret)){
     System.out.println(" Enter guess:");
     guess = keyboard.nextLine();
  }
  System.out.println("YOU got it!");

最新更新