首页 文章

连续输入(输入/扫描)两个相同的数字以打破“同时”Java的循环

提问于
浏览
0

我是一个java中的新蜜蜂,我有一个问题,我不能想出比较先前输入的数字(int)与下一个连续,我需要编写一个程序,重复从用户的键盘读取数字 . 当用户连续两次输入相同的数字时,程序停止循环 .

提前感谢您的善意指导 .

这是该程序的示例运行:5 13 21 5 4 5 5完成!

以下是我不成功的努力:)

扫描仪输入=新扫描仪(System.in); System.out.println(“输入数字”);

int x = 0;
    int y = 0;
    x = input.nextInt();
    y = input.nextInt();
    while (x != y) {

        x = input.nextInt();
        y = input.nextInt();

    }

    System.out.println("Done!!!!!!!");
    input.close();

4 回答

  • -1

    您可以使用循环从控制台读取数字,如果之前的nubmer等于当前的nubmer,则停止 . 作为第一个数字的标记,您可以使用例如 null Integer prv 的值(作为替代,您可以将 boolean isFirstLine 标志用于第一行或 res.isEmpty() ) .

    public static List<Integer> receiveNumbers() {
        List<Integer> res = new LinkedList<>();
        Integer prv = null;
    
        try (Scanner scan = new Scanner(System.in)) {
            while (true) {
                int num = scan.nextInt();
    
                if (prv != null && prv == num)
                    break;
    
                res.add(num);
                prv = num;
            }
        }
    
        return res;
    }
    
  • 0

    import java.util.Scanner;

    公共课OngoingPractice {

    public static void main(String[] args) {
        Scanner keyboard = new Scanner(System.in);
        int previous, current;
    
        previous = keyboard.nextInt();
        current = keyboard.nextInt();
    
        while (current != previous) {
            previous = current;
            current = keyboard.nextInt();
        }
    
        System.out.println("Done!");
    
  • 1

    只需使用无限循环并在新 int 等于前一个循环时中断 . 作为建议你应该展示你的尝试方式 .

    Scanner sc = new Scanner(System.in);
        int i;
        Integer j = null;
        boolean flag = false;
        while(true) {
            i = sc.nextInt();
            if(j==null) {j=i; flag = true;}
            if(j==i&&!flag) {
                System.out.println("Done");
                break;}
            j=i;
            flag = false;
        }
    

    编辑:如果第一个是-1,它将不会像评论中那样工作 . 所以我修改了一些 .

  • -1

    记住最后输入的数据在一个变量中,并使用当前数据进行检查 . 如果两者匹配,则打破循环 .

    Scanner scanner = new Scanner(System.in);            
            String previousNumber="";
            while (scan.hasNextInt()) {
              int number = scan.nextInt(); 
              if(!previousNumber.equals("") && number==Integer.parseInt(previousNumber)) { 
                break;
              }else {
                System.out.println(number);
              }            
              previousNumber=number+"";
            }
    

相关问题