gpt4 book ai didi

java - 使用 .hasNext() 循环输入对

转载 作者:行者123 更新时间:2023-12-04 07:15:46 25 4
gpt4 key购买 nike

我是 Java 的新手,正在尝试这个问题,我应该输入一对值(两个字符串一次一个),这意味着循环直到我退出使用ctrl z。只有等级将用于开关;该名称只是一个虚拟值。

我的预期输出是:
输入名称:(然后输入名称)
Enter grade: (然后输入成绩)

代码重复,直到达到 EOC。

使用 while (.hasNext()) 实现工作循环的最有效方法是什么?我尝试制作的代码存在很大缺陷,如下所示。

public static void main(String[] args) {

int ACount = 0;
int BCount = 0;
int CCount = 0;
int DCount = 0;

Scanner input = new Scanner(System.in);

while(input.hasNext()) {
System.out.print("\nEnter name: ");
String nameInput = input.next();

System.out.print("Enter grade: ");
String gradeInput = input.next();

switch (gradeInput) {
case "A":
ACount++;
break;
case "B":
BCount++;
break;
case "C":
CCount++;
break;
case "D":
DCount++;
break;
}

}

System.out.printf("%n%nGrade report%n%nA: %d%nB: %d%nC: %d%nD: %d%n", ACount, BCount, CCount, DCount);

}

最佳答案

我认为这个解决方案就是您正在寻找的,它在询问姓名和成绩之间切换,直到您使用 ctrl + z 取消它。就我个人而言,我编写 Java 代码已经 4 年了,从未使用过 switch,所以我只使用了简单的 if-else 语句,也只是使用了 print,而不是 println,这句话进入了 var,这就是我使用 println 的原因.

public static void main(String[] args) {
int ACount = 0;
int BCount = 0;
int CCount = 0;
int DCount = 0;

Scanner input = new Scanner(System.in);
boolean askingForName = false;
boolean first = true;
System.out.println("Enter name: ");
while(true) {
if (first) {
String nameInput = input.nextLine();

first = false;
continue;
}
if (askingForName) {
System.out.println("Enter name: ");
String nameInput = input.nextLine();
askingForName = false;

}else {
System.out.println("Enter grade: ");
String gradeInput = input.nextLine();

if (gradeInput.equalsIgnoreCase("A")) {
ACount++;

}else if (gradeInput.equalsIgnoreCase("B")) {
BCount++;
}else if (gradeInput.equalsIgnoreCase("C")) {
CCount++;
}else if (gradeInput.equalsIgnoreCase("D")) {
DCount++;
}



askingForName = true;
}


if (!input.hasNextLine())
break;

}
System.out.printf("%n%nGrade report%n%nA: %d%nB: %d%nC: %d%nD: %d%n", ACount, BCount, CCount, DCount);
}

关于java - 使用 .hasNext() 循环输入对,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59521579/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com