如何打印其他号码?

时间:2019-12-06 11:32:09

标签: java

我是Java的新手,刚开始学习它的基本概念,我现在正在尝试开发一个程序,在该程序中,用户输入两个数字,并且程序在这两个数字之间打印所有其他数字,我尝试了几种方法,但我只是可以掌握如何做,我知道这看起来真的很容易,但是我过去的两天一直在努力解决这个问题。我真的很感谢您的帮助。我设法编写了允许输入值的代码,但是之后,它只是空白,无法继续执行操作:/

这是我带走代码的距离,可能还很遥远。

public class EveryOther {
  public static void main(String[] args) {

    int FirstNumber = 0;
    int SecondNumber = 0;

    Scanner scanner = new Scanner(System.in);
    System.out.print("FirstNumber: " );
    scanner.nextInt();

    Scanner scanner2 = new Scanner(System.in);
    System.out.print("Second Number: ");
    scanner.nextInt(); {

        while (FirstNumber <= SecondNumber + 2);
        System.out.println(SecondNumber * FirstNumber +2);
        SecondNumber++;

    }
}

6 个答案:

答案 0 :(得分:3)

  1. FirstNumber和SecondNumber分配为0,但实际上我们想从Scanner分配它。这是一些有用的例子。 https://www.w3schools.com/java/java_user_input.asp

  2. while循环不执行任何操作,因为条件代码是一个空语句。该链接可能非常有帮助。 https://www.tutorialspoint.com/java/java_while_loop.htm

    import java.util.Scanner;
    
    public class EveryOther {
    
        public static void main(String[] args) {
    
            int FirstNumber = 0;
            int SecondNumber = 0;
    
            Scanner scanner = new Scanner(System.in);
            System.out.print("FirstNumber: " );
            FirstNumber = scanner.nextInt();
    
            System.out.print("Second Number: ");
            SecondNumber = scanner.nextInt();
    
            while (FirstNumber < SecondNumber){
                System.out.println(FirstNumber);
                FirstNumber = FirstNumber + 2;
            }
        }
    

    }

答案 1 :(得分:2)

因此,假设您拥有firstNumber = 5secondNumber = 10,那么从firstNumber开始的其他所有数字都是5,7,9,这意味着您只需要增加{{1 }}在循环的每次迭代中的值firstNumber's。可以按照以下步骤进行操作:

by 2

希望它可以帮助您理解。

答案 2 :(得分:1)

@ GTech7嗨,请检查此代码并附带注释。

package com.company;

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {

        // Initialize 2 numbers
        int firstNumber;
        int secondNumber;

        Scanner scanner = new Scanner(System.in);
        // Read 1st number
        System.out.print("First Number: " );
        firstNumber = scanner.nextInt();
        // Read 2nd number
        System.out.print("Second Number: ");
        secondNumber = scanner.nextInt();

        if (firstNumber < secondNumber) {
            printAndIncrement(firstNumber, secondNumber);
        } else {
            printAndIncrement(secondNumber, firstNumber);
        }

    }

    private static void printAndIncrement(int smallNo, int largeNo) {
        while (smallNo < largeNo){
            System.out.println(smallNo);
            smallNo = smallNo + 2;
        }
    }
}

请勿使用2台扫描仪,因为您可以使用同一台扫描仪读取任意数量的输入。

答案 3 :(得分:1)

正如这里其他人提到的,您可能需要先阅读一些理论。

在达到基本理论中的某些里程碑之后,

边干边学会很好。换句话说,如果您打算成为一名优秀的开发人员并能够与其他专业人员合作,请不要跳入任何编程语言的中间。首先需要以多种方式很好地理解Java及其底层概念(OOP)。然后,其通用的API将帮助专业的开发人员不必在复杂的项目中重新发明轮子。例如,使用Java Streams(在读取输入并将其正确分配给变量之后!)将以最安全,最干净的方式完成此任务:

* btw,我不明白将firstNumbersecondNumber和+ 2乘以最后会达到以下目的:

  

用户输入两个数字,程序将在这两个数字之间每隔一个数字打印一次

基于我对以上引用的解释:

import java.util.Scanner;
import java.util.stream.IntStream;


public class EveryOther {
  public static void main(String[] args) {

    /* take a look at java naming conventions */
    int firstNumber, secondNumber;

    Scanner scanner = new Scanner(System.in);
    System.out.print("FirstNumber: " );
    firstNumber = scanner.nextInt();
    /* No need to make a new instance if Scanner! */
    System.out.print("Second Number: ");
    secondNumber = scanner.nextInt();
    scanner.close();

    IntStream.range(firstNumber + 1, secondNumber).forEach(System.out::println);
  }
}

答案 4 :(得分:0)

代码中有一些问题需要纠正:

while循环用;封闭;因此以下代码不会在循环中执行。

while (FirstNumber <= SecondNumber + 2) {
    System.out.println(SecondNumber * FirstNumber + 2);
    SecondNumber++;
}
  • 您不需要两个扫描仪,因为一个扫描仪就足够了。
  • 没有从扫描仪输入的值 分配给任何声明的变量,循环将在其中打印两个 无限的方式。
  • 您不断不断地在循环中逻辑不正确 更改上限将使循环无限 正在执行。

答案 5 :(得分:0)

我发现这里的大多数评论都很有帮助,而且我已经设法了解了一点,我想我不是我想的那样,只需要您的有用评论来帮助我理解如何解决这个问题问题。谢谢。