我必须创建一个程序,从用户获取范围,然后添加范围内的每个偶数并打印到屏幕。我正在努力弄清楚如何在for循环中添加每个数字。如果范围是5到10,则屏幕应打印24作为答案。以下是我的代码。
//worksheet 4 - question 3
//asks user for a range. Adds even numbers in range and prints their sum.
import java.util.Scanner;
class P3LoopRange
{
public static void main(String[] args)
{
Scanner input = new Scanner(System.in);
int initial, finalValue;
System.out.print("Enter a start value: ");
initial = input.nextInt();
System.out.print("Enter a second value: ");
finalValue = input.nextInt();
while (finalValue <= initial)
{
System.out.println("Second value must be larger than start value.");
System.out.print("Enter a second value: ");
finalValue = input.nextInt();
}
int range = finalValue - initial;
int x = 0
for (int i = initial; i <= finalValue; i++)
{
if (i%2==0)
{
int x = x+i;
}
}
System.out.printf(x);
}
}
答案 0 :(得分:1)
您声明x
局部变量的两倍
你不能因为有一个重复的局部变量是不合法的
此外,在循环内声明它会使它在每次迭代时被覆盖
所以,只需在循环之前声明它就可以了。
int x = 0;
for (int i = initial; i <= finalValue; i++)
{
if (i%2 == 0)
{
x = x + i;
}
}
答案 1 :(得分:1)
将int x = x+i;
更改为x=x+i;
。您每次都要重新初始化x
。
答案 2 :(得分:1)
问题出在:int x = x+i;
只需删除int
即可解决您的问题