gpt4 book ai didi

java - 如何使用 switch 语句并获得正确的输出?

转载 作者:行者123 更新时间:2023-11-30 04:01:32 24 4
gpt4 key购买 nike

我无法获取该程序的输出以返回学生的字母成绩。另外,我在最高等级方面遇到了麻烦。任何帮助都会很棒。

   import java.util.Scanner;

public class GPACalc {

public static void main(String[] args) {

Scanner input = new Scanner ( System.in );
System.out.println( "Last Name: " );
String studentName = input.next();

System.out.println( "First Name: " );
String firstName = input.next();

System.out.println( "Enter CWID: " );
int id = input.nextInt();

System.out.print( "Enter Student Grades: " );

int count = 0;
double total = 0.000;
double avg;
int max = 0, min = 0;

int gradeNum = 0;
while ( true ) {
int grade;
grade = input.nextInt();
if ( grade < 0.000 || grade > 100 )
break;

if ( grade > max );
max = grade;

if ( grade < min )
;
min = grade;
total = total + grade;
count++;
}
avg = total / count;

char letter = 'H';

switch( letter ) {
case 'A':
avg = 100;
System.out.println("You have a perfect score. Keep up the excellent work!");
break;
case 'B':
avg = 90;
System.out.println("You have an A. Great Job!");
break;
case 'C':
avg = 80;
System.out.println("You have a B. Keep studying hard!");
break;
case 'D':
avg = 70;
System.out.println("You have a C. Commit a little more of your time.");
break;
case 'E':
avg = 60;
System.out.println("You have a D. You might want to study.");
break;
case 'F':
avg = 50;
System.out.println("You have an F. Better luck next semester.");
break;
case 'G':
avg = 0;
System.out.println( "It's time to change majors.");
break;
}


System.out.println("\n----------------------------------------------------------");
System.out.println( " STUDENT IFORMATION" );
System.out.println("\n----------------------------------------------------------");
System.out.println( " Student Name -- " + firstName + " " + studentName );
System.out.println( " Student ID -- " + id );
System.out.println( " Students GPA -- " + avg );
System.out.println( " # of Grades -- " + count );
System.out.println( " Highest Grade -- " + max );
System.out.println( " Lowest Grade -- " + min );
System.out.println("\n----------------------------------------------------------");



}

}

最佳答案

您的“if”语句不起作用,因为您在它们后面加了分号。你的意思是这样做:

if (a) dosomething;

...但是你这样做:

if (a) ; // does nothing
dosomething; // always does something regardless of "a"

要么你做得完美,要么就行不通。没有“A代表努力”。

关于您希望使用 switch 语句,这很简单,但您已经尝试向后执行。首先,您计算平均值。 (这是个好主意。)然后你告诉计算机,成绩是“H”。 (为什么?这显然不是一个好主意。)然后你要求它打开等级(这是一个“H”),如果它是一个“H”,你就会用零覆盖你计算的平均值。所以所有学生都会得零分。还有 H。

你的意思是,取你计算出的平均值,并从中得到成绩。因此,打开平均值,并按大小写标签提供平均值可能为的值:

switch (avg)
{
case 100: case 99: case 98: // etc.
letter = 'A';
break;
// and so on
}

由于您可能不想将“case 50”向下键入“case 0”,因此只需使用“default:”来匹配您未明确列出的所有案例。

附:将你的 avg 变成 int (不是 double),这样你就可以打开它

p.p.s。打印出您计算的变量,以便您实际上知道它们是您认为应该是的...我们称之为“调试”;-)

关于java - 如何使用 switch 语句并获得正确的输出?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21896583/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com