Java中的For循环第二次暂停
我正在尝试编写一些代码,以跟踪赢/输比率。我有一个for循环,它检查一个名称是否存在于一个单独的变量中,这是可行的,但当我再次尝试时,它会暂停Java中的For循环第二次暂停,java,loops,for-loop,Java,Loops,For Loop,我正在尝试编写一些代码,以跟踪赢/输比率。我有一个for循环,它检查一个名称是否存在于一个单独的变量中,这是可行的,但当我再次尝试时,它会暂停 System.out.println("\nEnter Name 1"); scan.nextLine(); String name1 = scan.nextLine(); for (int i = 0; i < numPlayers; i++) { if (name1.equals(players[i].name)) {
System.out.println("\nEnter Name 1");
scan.nextLine();
String name1 = scan.nextLine();
for (int i = 0; i < numPlayers; i++) {
if (name1.equals(players[i].name)) {
players[i].win++;
break;
}
}
System.out.println("\nEnter Name 2");
scan.nextLine();
String name2 = scan.nextLine();
for (int i = 0; i < numPlayers; i++) {
if (name2.equals(players[i].name)) {
players[i].loss++;
break;
}
}
System.out.println(“\n输入名称1”);
scan.nextLine();
字符串名称1=scan.nextLine();
for(int i=0;i
代码完成后,它应该返回while循环,但它只是暂停。如果我注释掉名称2部分,代码可以工作,但我需要这两部分
编辑1:
这是全部密码
public class Counter {
@SuppressWarnings("resource")
public static void main(String[] args) {
int intTemp;
String stringTemp;
int keepGoing = 1;
int numPlayers = 0;
Player[] players = new Player[999];
Scanner scan = new Scanner(System.in);
System.out.println("Melee Score Tracker");
while (keepGoing == 1) {
System.out.println("\nPrint Scores\t1\nNew Match\t2\nNew Player\t3\nExit\t\t4");
intTemp = scan.nextInt();
// Print Scores
if (intTemp == 1) {
intTemp = 0;
System.out.print("\n");
for (int i = 0; i < numPlayers; i++) {
players[i].print();
}
}
// New Match
if (intTemp == 2) {
intTemp = 0;
System.out.println("\nEnter Name 1");
scan.nextLine();
String name1 = scan.nextLine();
for (int i = 0; i < numPlayers; i++) {
if (name1.equals(players[i].name)) {
players[i].win++;
break;
}
}
System.out.println("\nEnter Name 2");
scan.nextLine();
String name2 = scan.nextLine();
for (int i = 0; i < numPlayers; i++) {
if (name2.equals(players[i].name)) {
players[i].loss++;
break;
}
}
}
// New Player
if (intTemp == 3) {
intTemp = 0;
System.out.println("\nWhat's the player's name?");
scan.nextLine();
stringTemp = scan.nextLine();
players[numPlayers] = new Player();
players[numPlayers].name = stringTemp;
numPlayers++;
System.out.println(numPlayers);
}
// Exit
if (intTemp == 4) {
System.exit(0);
}
}
}
}
公共类计数器{
@抑制警告(“资源”)
公共静态void main(字符串[]args){
int intTemp;
字符串字符串温度;
int keepGoing=1;
int numPlayers=0;
玩家[]玩家=新玩家[999];
扫描仪扫描=新扫描仪(System.in);
System.out.println(“近战分数跟踪器”);
while(keepGoing==1){
System.out.println(“\n打印分数\t1\n新匹配\t2\n新玩家\t3\nExit\t\t4”);
intTemp=scan.nextInt();
//打印分数
如果(intTemp==1){
intTemp=0;
系统输出打印(“\n”);
for(int i=0;i
它因此暂停
scan.nextLine();
scan.nextLine();
String name2 = scan.nextLine();
它正在等待输入3次。您只需要输入一次,因此将其替换为
String name2 = scan.nextLine();
在将来,通过在循环中打印一条小消息来检查代码是否真的进入for循环,这样的事情可以很容易地进行调试
String name2 = scan.nextLine();
for (int i = 0; i < numPlayers; i++) {
System.out.println("We have entered the loop.");
if (name2.equals(players[i].name)) {
players[i].loss++;
break;
}
}
String name2=scan.nextLine();
for(int i=0;i
如果您在控制台中看到输出,那么您知道问题不在于循环本身,而在于它之前。我甚至没有看到while循环。您可以发布while循环,它可能会暂停,因为它正在内网运行。它是否在
scan.nextLine()处暂停代码>(在字符串名称2=scan.nextLine();
之前)??寻求调试帮助的问题(“为什么此代码不工作?”)必须包括所需的行为、特定的问题或错误以及在问题本身中重现此问题所需的最短代码。没有明确问题陈述的问题对其他读者没有用处。请参阅:如何创建。您确定它进入for并且在等待“下一行”时不会停止吗?谢谢,这已成功。我这样做是因为我之前没有这样做,它会跳转到代码的下一部分。