我试图得到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);
}
}
}
答案 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
来退出程序。您应该使用某种布尔控制变量。