制作一本适用于一名学生的成绩册,它以学生的姓名作为输入。然后,他们被要求将成绩分为三类:家庭作业、测验和测试。每个类别的成绩将分别进行平均,最后计算公式:“最终平均成绩 = 0.25*家庭作业平均成绩 + 0.25测验平均成绩 + 0.50测试平均成绩 = 65
一切正常,但 -1 并没有结束该过程!真令人沮丧!
import java.util.Scanner;
public class Assignment3
{
public static void main( String[] args )
{
Scanner input = new Scanner( System.in );
int homeworkGrades;
int quizGrades;
int testGrades;
int choice;
int total;
double average;
String name;
total = 0;
homeworkGrades = 0;
System.out.println( "Enter 1 or 2: \n 1 - Average grades \n 2 - Quit" );
choice = input.nextInt();
if ( choice == 1 ) {
System.out.println( "Enter the students name" );
name = input.next();
System.out.println( " What would you like to do? \n 1 - Homework grades \n 2 - Quiz grades \n 3 - Test grades " );
choice = input.nextInt();
{
while ( choice == 1 ) {
System.out.println( "Enter a homework grade. Press -1 when finished" );
homeworkGrades += input.nextInt();
if ( homeworkGrades != -1 ) //it's something going on right here :s
if ( homeworkGrades == -1 )
System.out.println("Total for homework grades is " + homeworkGrades );
}
}
}
else if ( choice == 2 ) {
System.out.println( "Exiting program" );
}
else {
System.out.println( "Invalid response, exiting program." );
}
}
}
最佳答案
你的代码有 if ( homeworkGrades != -1 )
紧接着是 if ( homeworkGrades == -1 )
- 这可能不会做你想要的它要做。
我建议始终在 if 语句周围加上大括号,并使用适当的代码缩进来避免此类错误 - 在通读时检测它们会变得更加容易。
关于java - 循环不会添加总计,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21735721/