繁体   English   中英

Java-if语句不断循环

[英]Java - if statement keeps looping

我在使用if语句时遇到了一些问题。 该方案是,如果用户想要英国队,则用户应该可以输入1,如果想要美国队,则应该输入2。 一旦他们选择了一个区域,就会出现一个团队列表,他们输入团队的数量,该团队的信息应该打印出来,但是由于某种原因,它不断循环并要求进入一个团队。 我在这里略微简化了代码,否则太大了。

ArrayList<STeam> teams = rCSV.readSTeams("sports-teams.csv");
Scanner UInput = new Scanner(System.in);
System.out.println("Enter 1 for British teams or 2 for American teams");
int choice = UInput.nextInt();
for (STeams st1 : teams) {

    if (choice == 1) {
        System.out.println("Choose: 1. London FC");
        int choice2 = UInput.nextInt();
        {
            if (choice2 == 1) {
                if (st1.getName().equals("London FC")) {
                    System.out.println(st1);
                }
            }
        }
    }
    else if (choice == 2) {
        System.out.println("test");
    }
}

抱歉,如果这太乱了。 我有一个单独的类来读取文件,另外一个类是运动队的类,我知道这些工作,因为我做了类似的事情,但是在另一个而不是2内使用if语句。

choice永远不会在for循环中更新。

您可能想做:

for (STeams st1 : teams) {
    int choice = UInput.nextInt();
    if(choice == 1) {
    // ...
}

您正在将其for (STeams st1: teams) ,这可能是剩余的代码。 由于没有括号,因此for会不断循环播放。


编辑:好的,您可能想要这样的东西:

ArrayList britishTeams = rCSV.readSTeams(“ sports-teams.csv”); 扫描仪UInput =新的Scanner(System.in);

    System.out.println("Enter 1 for British teams or 2 for American teams");
    int choice = UInput.nextInt();

    if (choice == 1) 
    {
        for(int option = 0; option<britishTeams.size; option++)
            System.out.println("Option " + option + ": " + britishTeams.get(option).name);    
        int choice2 = UInput.nextInt();
        System.out.println("You chose: " + britishTeams.get(choice2).name);   
    }

要添加美国队,请不要再次复制/粘贴此人,使代码成为一组队并选择一个方法;-)

嘿看起来您正在循环运行,没有任何条件。 因此它将一直运行到您的团队中有代币为止。 完成选择后,您需要使用break。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM