簡體   English   中英

如何在我輸入的兩個數字之間打印數字?

[英]How can I print numbers between two numbers that I enter?

我正在創建一個程序,要求用戶輸入兩個數字。 然后它將按數字順序打印用戶輸入的數字和兩個數字之間的數字。 我聲明並初始化了兩個變量,分別是“number1”和“number2”。

    int number1;
    int number2;
    do{
        Scanner input = new Scanner(System.in);
        System.out.print("Enter the first number: " );
        number1 = input.nextInt();
    
        System.out.print("Enter the second number: " );
        number2 = input.nextInt();
    
        if(number1 == number2)
        {
           System.out.println("The numbers you entered equal with each other. Try again.\n");
        }
    }while(number1 == number2);

    if (number1 > number2)
    {
        for(int a = number2; a <= number1; a++)
        {
            System.out.print(a + " ");
        }
    }
    
    else
    {
        for(int a = number1; a <= number2; a++)
        {
            System.out.print(a + " ");
        }
    } 

我如何使它也只打印“number1”和“number2”之間的數字?

你的代碼的第一部分很好,如果你想這樣做的話。

    Scanner scanner = new Scanner(System.in);
    int first, second;

    do {
        System.out.print("Enter the first number: ");
        first = scanner.nextInt();
        System.out.print("Enter the second number: ");
        second = scanner.nextInt();

        if (first == second) {
            System.out.println("The numbers you entered equal with each other. Try again.\n");
        }
    } while (first == second);

對於第二部分,我建議確定哪個數字是哪個(較小/較大)而不是使用重復代碼。 此外,您只需要在您選擇的數字之間循環數字,因此您必須更改 for 循環

  //determine which number is bigger/smaller
  int smaller = Math.min(first, second);
  int bigger = Math.max(first, second);

  for(int i = smaller+1 ; i < bigger ; i++){
      System.out.print(i + " ");
  }

這里唯一奇怪的情況是您輸入兩個相鄰的數字,這將不會輸出任何數字。 例如3和4。

int max = Math.max(number1, number2); for(int i = (max == number1 ? number2 : number1) + 1 ; i < max ; i++) { System.out.println(i); }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM