因此,在输入while指令所需的数字后,应该显示 结果然后“在此处输入您的姓名:”文字。 之后我应该能够输入文本,但显然我不能,它只显示“Hello”消息并跳转到下一条指令。
但是,如果我在一系列数字之后写下文本,它就可以了。如何让程序让我在“在此输入你的名字”消息后输入文字?
import java.util.Scanner;
public class apples {
public static void main(String[] args) {
Scanner cristi = new Scanner(System.in);
int age= 21, k=10, nr=1, sum=0, val=0;
k=cristi.nextInt();
while(nr<=k){
val=cristi.nextInt();
sum=sum+val;
nr++;
}
sum=sum/k;
System.out.println(sum);
System.out.println(age>50 ? "You are old!" : "You are young!");
tuna tunaObject= new tuna();
System.out.println("Enter the name here: ");
String a= cristi.nextLine();
tunaObject.simpleMessage(a);
System.out.println("Enter first name: ");
String temp= cristi.nextLine();
tunaObject.setName(temp);
tunaObject.afisaj();
}
}
答案 0 :(得分:1)
这是关于缓冲区和Scanner
的问题。要解决您的问题,请在每个cristi.nextLine()
后执行cristi.nextInt()
,以便清除缓冲区。
有关详细信息,请查看this thread
答案 1 :(得分:0)
添加以下行:
cristi.nextLine();
在while
循环之后解决您的问题。
编辑: @Xatyrian答案提供更多背景信息。