我正在尝试创建一个询问用户输入的while循环.如果用户键入"hi",它将打印"hello",如果用户键入"done",它将结束循环,但如果用户键入任何其他内容或整数,则会显示"键入hi或done".代码如下:
public static void main(String[] args){
Scanner input = new Scanner(System.in);
while(!(input.nextLine()).equals("done")){
if((input.nextLine()).equals("hi"))
{
System.out.println("Hello");
}
else
{
System.out.println("Type hi or done");
}
}
}
Run Code Online (Sandbox Code Playgroud)
但是使用此代码,它会在显示结果之前询问用户输入两次.有什么问题以及如何以最有效的方式处理它?
你应该只input.nextLine()为每个循环调用一次.像这样写你的代码:
package com.sandbox;
import java.util.Scanner;
public class Sandbox {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
String line;
while (!(line = input.nextLine()).equals("done")) {
if (line.equals("hi")) {
System.out.println("Hello");
} else {
System.out.println("Type hi or done");
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
你写它上面的方式,你扔掉while的line调用nextLine()的if声明.
| 归档时间: |
|
| 查看次数: |
113 次 |
| 最近记录: |