Java-if语句保持循环

Java-if语句保持循环,java,if-statement,Java,If Statement,我在让我的if语句工作时遇到了一点问题。该场景是,如果用户想要英国队,则应能输入1;如果用户想要美国队,则应能输入2。一旦他们选择了一个区域,就会出现一个团队列表,他们输入团队的数量,该团队的信息应该打印出来,但出于某种原因,它只是不断循环并要求输入团队。我在这里稍微简化了我的代码,否则它会太大 ArrayList<STeam> teams = rCSV.readSTeams("sports-teams.csv"); Scanner UInput = new Scanner(Syst

我在让我的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");
    }
}
ArrayList teams=rCSV.readSTeams(“sports teams.csv”);
扫描器UInput=新扫描器(System.in);
System.out.println(“为英国队输入1,为美国队输入2”);
int choice=UInput.nextInt();
对于(蒸汽st1:团队){
如果(选项==1){
System.out.println(“选择:1.London FC”);
int choice2=UInput.nextInt();
{
如果(选项2==1){
if(st1.getName().equals(“伦敦FC”)){
系统输出打印项次(st1);
}
}
}
}
else if(选项==2){
系统输出打印(“测试”);
}
}
如果这是非常混乱的,我道歉。
我有一个单独的类来读取文件,还有一个单独的类用于运动队,我知道这些工作,因为我做过类似的事情,但在另一个类中只使用1 if语句,而不是2。

选项在for循环中永远不会更新

您可能想做:

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

您将此
用于(streams st1:teams)
,这可能是一个遗留代码。因为它没有括号,所以for将不断地循环使用它


编辑:好的,您可能需要这样的内容:

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

System.out.println(“为英国队输入1,为美国队输入2”);
int choice=UInput.nextInt();
如果(选项==1)
{

对于(int option=0;option嘿,看起来你在无条件地运行循环。因此它将一直运行,直到你的团队中有代币。完成选择后,你需要使用break。

我已经为“for”添加了括号,但它似乎仍在不断要求我输入团队编号。你能发布
STeam
类吗?一个qu对你的更新的评价:为什么你要迭代所有的球队?你不想只选择美国队还是英国队?你的STeam类中有什么?用户先选择美国队,然后选择英国队,然后选择他们想要的球队。例如,我为美国队输入2,然后为一个名为“湖人队”的球队输入1。好的,那么团队数组包括美国队和b队ritish团队,你想过滤掉它们吗?是的,有点像,但有2个数组,但为了方便起见,我在上面的代码中只包含了1个,是英国的。有2个文件,一个是英国的,一个是美国的,它们被读取并放入数组中。但是我想由不同的团队过滤文件。
    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);   
    }