从while循环中获取总和

时间:2015-10-27 23:13:01

标签: java loops

我试图得到2和用户输入的值之间的偶数之和。我设法打印出偶数数字,但我怎么能打印出偶数数字?而不是列出所有偶数?

最后它应该是这样的:

输入值:20

2到20之间的偶数之和:110

import java.util.Scanner;
public class Practice_7_1
{
public static void main (String[] args)
{
 Scanner input = new Scanner(System.in);

 while (true)
 {
 //Gather data value
 System.out.println("Please enter a number: ");
 int value = input.nextInt();
 String text = "Sum of even numbers between 2 and " + value + " is: "; 
 //Loop
 int i = 2;
 while (i <= value)
  {
  if (i%2 == 0){
     text = (text + i);
     if (i< value)
        text = (text + ", ");
     else
        text = (text + ". ");
   }      
  i++;
 }
 //Output
 System.out.println(text);
 }
}
}

编辑: 最后的答案:

import java.util.Scanner;
public class Practice_7_1
{
public static void main (String[] args)
{
 Scanner input = new Scanner(System.in);

 while (true)
 {
 //Gather data value
 System.out.println("Please enter a number: ");
 int value = input.nextInt();
 String text = "Sum of even numbers between 2 and " + value + " is: "; 
 //Loop
 int sum = 0;
 for (int i = 2; i <= value; i +=2){
  sum += i;

 }
 //Output
 System.out.print(text);
 System.out.println(sum);
 }
}
}

1 个答案:

答案 0 :(得分:0)

使用for循环。使用for循环,您可以自定义&#34;步骤&#34;您的内部循环变量(i)。这也消除了检查均匀性的需要。

int sum = 0;
for (int i = 2; i < value; i+=2) {
  sum += i;
}
System.out.println(sum);

另外,您应该避免使用while(true),因为它需要使用明确的break来退出程序。您应该使用某种布尔控制变量。