我的目标是使用for循环添加用户输入的数字。
这是我的代码:
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。
答案 0 :(得分:1)
“我的目标是添加用户输入的数字 环“
您需要累积用户输入的每个整数:
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
答案 1 :(得分:0)
每次“mks = Integer.parseInt(br.readLine());”被调用,它会覆盖mks的先前值。所以你最后一次运行它,你得到的最后一行是+4(当时我的值)。
如果您想要对所有已加载标记的值求和,则应创建一个不会被覆盖的新变量。或者,您也可以
mrks = mrks + Integer.parseInt(br.readLine()) + i
答案 2 :(得分:0)
每次循环迭代都会重新初始化累加器(mks)变量。
你需要在循环之外定义一次,值为零,然后在每次循环迭代时添加它。
另外,摆脱mks=mks+i
最后,捕获异常并忽略它们对你没有任何帮助。出现异常时,您至少应该显示错误消息。否则,只需在throws
子句中声明异常,然后让它传播(即让它终止程序)。
答案 3 :(得分: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);