【问题标题】:How am i going to use while loop and if else if user enter the same input twice and it will try again如果用户两次输入相同的输入,我将如何使用 while 循环和 if else 它将再次尝试
【发布时间】:2020-02-22 13:21:23
【问题描述】:

我想在java中应用这个函数。在while循环中,您需要输入要输入数字的重复次数。如果您输入的数字等于您之前输入的数字,它将重复一个循环并再次输入一个数字。此代码尚未完成。我希望你明白我想要达到的目标。谢谢

    System.out.print("Enter number of times: ");
    int times = number.nextInt();

    int i = 1;

    while ( i <= times){


        System.out.print("Enter a number : ");
        int input = number.nextInt();
        i++;
            if( input == input){
                System.out.println("It is already taken");
            }
    }
}

}

【问题讨论】:

    标签: java loops if-statement while-loop


    【解决方案1】:

    让我们使用一个临时变量来存储先前输入的值。如果新输入与之前的输入相同,迭代器 i 不应该增加,所以我们使用 i--

        System.out.print("Enter number of times: ");
        int times = number.nextInt();
    
        int i = 1;
        int temp=0;
        int inputArray[] = new int[times];
    
        while ( i <= times){
            System.out.print("Enter a number : ");
            int input = number.nextInt();
            i++;
                if( input == temp){
                    System.out.println("It is already taken");
                    i--;
                }else {
                            inputArray[i-2]=input;
                        }
            temp=input;
        }
    }
    
    

    【讨论】:

    • 这样的数组怎么样... int input [] = new int [times] ... input [i] = number.nextInt();...温度和我?
    • @OroChi 代码保持不变,只是 temp=input[i]
    • System.out.print("输入次数:");整数次 = number.nextInt();诠释 i = 1;国际温度 = 0;整数输入 [] = 新整数 [次]; while (i
    • @OroChi 基本上你想将所有输入保存在一个数组中?
    • 是的,我想将它保存在一个数组中。抱歉我只是一个初学者哈哈哈
    【解决方案2】:

    该解决方案的问题是仅检查在当前数字之前输入的数字。我了解到您想检查用户输入的号码是否唯一,并且必须对照他/她之前输入的每个号码进行检查。

    查看代码:

    import java.util.Scanner;
    import java.util.ArrayList;
    
    public class testMe{
        public static void main(String[] args){
            Scanner scanner = new Scanner(System.in);
            System.out.print("Enter number of times: ");
            int times = scanner.nextInt();
    
            int i = 0;
            ArrayList<Integer> listWithEntries = new ArrayList<Integer>();
    
            while (i < times){
                System.out.print("Enter a number : ");
                int input = scanner.nextInt();
                    if(listWithEntries.size() == 0){
                        listWithEntries.add(input);
                        i++;
                    } else {
                        for(int j = 0; j < listWithEntries.size(); j++){
                            if(input == listWithEntries.get(j)){                            
                                System.out.println("It is already taken!");                            
                                break;
                            }
                            if(j == listWithEntries.size()-1 && input !=            
                                              listWithEntries.get(j)){
                                listWithEntries.add(input);
                                i++;
                                break;
                            }
                        } 
                    }        
            }
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-02-21
      • 1970-01-01
      • 2011-09-08
      • 2016-06-06
      • 1970-01-01
      • 2021-03-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多