0

我的目标是使用 for-loop 添加用户输入的数字。

这是我的代码:

import java.io.*;
class Student {
    public static void main (String args[]){
    int mks=0, i=0 ,percnt=0;
    BufferedReader br = new BufferedReader (new InputStreamReader(System.in));
        try {
            System.out.println("Enter Marks Of Student ");      

            for (i=0;i<=4;i++){
            mks= Integer.parseInt(br.readLine());
            mks=mks+i;
            }
        }catch (Exception e) {}
        percnt=mks/5;

        System.out.println("GRAND TOTAL = "+mks+ " PERCENTAGE"+percnt);
    }
}

我正在使用此代码获得最后输入的标记 + 4。

4

4 回答 4

1

“我的目​​标是添加用户使用 for 循环输入的数字”

您需要累积用户输入的每个整数:

mks += Integer.parseInt(br.readLine());

“我得到最后输入的分数 + 4 使用此代码”

这是因为您的代码:

mks= Integer.parseInt(br.readLine());  // Get the integer the user entered
mks=mks+i;        // Add i (which in the case of the last iteration is 4)

正在设置mks每次循环重新启动时的值。此外,如果您尝试计算用户输入的所有数字,则无需将循环计数器添加i到累加器变量mks

于 2012-07-16T21:58:13.500 回答
0

你的代码应该是这样的。

int mks=0, i=0 ,percnt=0;
BufferedReader br = new BufferedReader (new InputStreamReader(System.in));
try {
    System.out.println("Enter Marks Of Student ");

for (i=0;i<=4;i++){
    mks+=Integer.parseInt(br.readLine())+i;
    //mks=mks+i;
}
}catch (Exception e) {}
percnt=mks/5;
System.out.println("GRAND TOTAL = "+mks+ " PERCENTAGE"+percnt);
于 2012-07-16T22:09:33.263 回答
0

每次“mks= Integer.parseInt(br.readLine());” 被调用时,它会覆盖 mks 的先前值。所以最后一次运行它时,你会得到最后一行输入 +4(当时 i 的值)。

如果您想对所有加载标记的值求和,您应该创建一个不会被覆盖的新变量。或者,您可以这样做

mrks = mrks + Integer.parseInt(br.readLine()) + i
于 2012-07-16T21:58:53.637 回答
0

您将在每次循环迭代时重新初始化您的累加器 (mks) 变量。

您需要在循环之外定义一次,值为 0,然后在每次循环迭代中添加它。

另外,摆脱 mks=mks+i

最后,捕捉异常并忽略它们对你没有任何好处。当出现异常时,您至少应该显示一条错误消息。否则,只需在子句中声明异常throws,并让它传播(即让它终止程序)。

于 2012-07-16T21:59:20.377 回答