两个整数之间的偶数的输出和

时间:2015-10-24 01:07:14

标签: java while-loop

我正在我的一个大学课程中处理一个简单的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++;
        }
    }
}

}

4 个答案:

答案 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)。您需要撤消将whileif进行比较的所有secondNumfirstNum语句。

然后你有这个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 ++;
      }  
    }
}