我是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++;
}
}
答案 0 :(得分:3)
FirstNumber和SecondNumber分配为0,但实际上我们想从Scanner分配它。这是一些有用的例子。 https://www.w3schools.com/java/java_user_input.asp
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 = 5
和secondNumber = 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,我不明白将firstNumber
和secondNumber
和+ 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)
我发现这里的大多数评论都很有帮助,而且我已经设法了解了一点,我想我不是我想的那样,只需要您的有用评论来帮助我理解如何解决这个问题问题。谢谢。