我正在我的一个大学课程中处理一个简单的JAVA问题。我对这个计划感到难过。我将展示我到目前为止所提供的内容并提出我必须回答的问题。我也在StackOverflow上看了一个类似的问题,但它不是同样的问题所以它有DIDN&T; T帮助。我需要写的程序是:
编写一个使用'而#39;循环执行以下步骤:
a。)提示用户输入两个整数:' firstNum'和' secondNum' (firstNum必须小于secondNum)
b。)输出' firstNum'之间的所有奇数。和' secondNum'包容。
c。)输出' firstNum'之间所有偶数的总和。和' secondNum'包容。
这就是我到目前为止......(我仍然需要计算偶数并总结它们)
//import classes
import java.util.*;
public class chapter5no9
{
static Scanner console = new Scanner(System.in);
public static void main(String[] args)
{
//Part A
int firstNum;
int secondNum;
int sumEven;
System.out.println("Please enter an integer: ");
firstNum = console.nextInt();
System.out.println("Please enter another integer less than the first integer: ");
secondNum = console.nextInt();
//Part B
if (firstNum < secondNum)
{
System.out.print("Your second number is greater than the first. So Please re-enter: ");
secondNum = console.nextInt();
}
else
{
System.out.print("Odd Numbers: ");
firstNum++;
while (firstNum > secondNum)
{
if (secondNum % 2 != 0)
{
System.out.print(" " + secondNum);
}
secondNum++;
}
System.out.println();
System.out.print("Sum of Even Numbers: ");
firstNum++;
while (firstNum > secondNum)
{
if (secondNum % 2 != 0)
{
System.out.print(" " + secondNum);
}
secondNum++;
}
}
}
}
答案 0 :(得分:1)
我创建了loopCounter变量来处理所需的迭代而不改变用户输入的值。您的代码已进行了以下更改。
A部分:添加了一个while循环来验证用户输入。也改变了if语句中的逻辑。
B部分:使用一个循环打印奇数和总偶数
//Part A
int firstNum;
int secondNum;
int sumEven=0;
System.out.println("Please enter an integer: ");
firstNum = input.nextInt();
System.out.println("Please enter another integer less than the first integer: ");
secondNum = input.nextInt();
//Part B
//validate input in a loop
while(true)
{
if (firstNum > secondNum)
{
System.out.print("Your second number is larger than the first. So Please re-enter: ");
secondNum = input.nextInt();
}
else
{
break;
}
}
System.out.print("Odd Numbers: ");
int loopCounter=firstNum;
while(loopCounter<secondNum)
{
if (loopCounter%2!=0)
{
System.out.print(" " + loopCounter);
}//end if
else
{
sumEven+=loopCounter;
}//end else
loopCounter++;
}
System.out.println();
System.out.print("Sum of Even Numbers: ");
System.out.print(sumEven);
}
答案 1 :(得分:1)
我会将检查输入和计算结果的两个问题分开。以下是我如何计算它:
int sum = IntStream.rangeClosed(firstNum, secondNum).filter(i -> i % 2 == 0).sum();
答案 2 :(得分:0)
问题在于你的逻辑。你有这个if语句:
if (firstNum < secondNum)
{
System.out.print("Your second number is greater than the first. So Please re-enter: ");
secondNum = console.nextInt();
}
检查第二个数字是否大于第一个数字(您希望它是多少),然后要求他们重新输入。您想查看if (secondNum < firstNum)
。您需要撤消将while
与if
进行比较的所有secondNum
和firstNum
语句。
然后你有这个if (secondNum % 2 != 0)
检查奇数,这是正确的,但你复制粘贴它来检查偶数,这将无法工作,你也需要改变它。 / p>
然后,你输出循环中的所有偶数整数,当你真的要将它添加到evenSum
变量,并在循环的 end 输出时:
System.out.println("The sum of all even integers is: " + evenSum);
这应该足以帮助你,我不打算为你写作业,这不是我们在这里做的。
答案 3 :(得分:0)
package hello.world;
import java.util.Scanner;
public class HelloWorld {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int number ;
int X = 0;
System.out.print("enter a number plz : ");
number = sc.nextInt();
while (X <= number){
System.out.println(X);
X ++;
}
}
}