每当条件失败时,我都无法循环我的代码。如果用户输入为真,它只打印两个代码块
I can't loop my code whenever condition fails. It just prints both blocks of code if the user input is true
我是 java 的初学者,我想重新循环一遍,但我不知道该怎么做。我已经尝试了一个 while 循环,但它并没有很好地工作,它打印了两个代码块。应该发生的是当我键入“退出、退出或退出”时,它应该终止。相反,它还会打印消息“无法终止程序”。我应该怎么办?我也试过一个 if 语句,它工作正常,但我不知道如果条件失败如何循环它。
import java.util.Scanner;
public class fortytwo {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("Hi there!");
String quit = scanner.next();
while (quit.equals("quit") || quit.equals("QUIT") || quit.equals("Quit")) {
System.out.println("You terminated the program");
break;
}
System.out.println("You failed to terminate the program.\n To quit, type (quit), (Quit), or (QUIT)");
scanner.close();
}
}
您正在使用一个不需要循环的循环。另外break
只是退出循环,循环结束后继续执行。将 while 替换为 if/else:
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("Hi there!");
String quit = scanner.next();
if(quit.toLowerCase().equals("quit")) {
System.out.println("You terminated the program");
} else {
System.out.println("You failed to terminate the program.\n To quit, type (quit), (Quit), or (QUIT)");
}
scanner.close();
}
这不会再次提示您的第二个输出提示的输入,但您的代码也不会。
循环的条件是检查whilequit
不等于"quit"
(不管大小写),所以消息"You failed to terminate the program..."
应该在循环体中打印,直到输入适当的命令。
此外,可以省略对 quit
的赋值,建议在 constant/literal 值上调用方法 equalsIgnoreCase
因为在一般情况下它有助于避免 NullPointerException
.
while (!"quit".equalsIgnoreCase(scanner.next())) {
System.out.println("You failed to terminate the program.\n To quit, type (quit), (Quit), or (QUIT)");
}
System.out.println("You terminated the program");
我是 java 的初学者,我想重新循环一遍,但我不知道该怎么做。我已经尝试了一个 while 循环,但它并没有很好地工作,它打印了两个代码块。应该发生的是当我键入“退出、退出或退出”时,它应该终止。相反,它还会打印消息“无法终止程序”。我应该怎么办?我也试过一个 if 语句,它工作正常,但我不知道如果条件失败如何循环它。
import java.util.Scanner;
public class fortytwo {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("Hi there!");
String quit = scanner.next();
while (quit.equals("quit") || quit.equals("QUIT") || quit.equals("Quit")) {
System.out.println("You terminated the program");
break;
}
System.out.println("You failed to terminate the program.\n To quit, type (quit), (Quit), or (QUIT)");
scanner.close();
}
}
您正在使用一个不需要循环的循环。另外break
只是退出循环,循环结束后继续执行。将 while 替换为 if/else:
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("Hi there!");
String quit = scanner.next();
if(quit.toLowerCase().equals("quit")) {
System.out.println("You terminated the program");
} else {
System.out.println("You failed to terminate the program.\n To quit, type (quit), (Quit), or (QUIT)");
}
scanner.close();
}
这不会再次提示您的第二个输出提示的输入,但您的代码也不会。
循环的条件是检查whilequit
不等于"quit"
(不管大小写),所以消息"You failed to terminate the program..."
应该在循环体中打印,直到输入适当的命令。
此外,可以省略对 quit
的赋值,建议在 constant/literal 值上调用方法 equalsIgnoreCase
因为在一般情况下它有助于避免 NullPointerException
.
while (!"quit".equalsIgnoreCase(scanner.next())) {
System.out.println("You failed to terminate the program.\n To quit, type (quit), (Quit), or (QUIT)");
}
System.out.println("You terminated the program");