public static void main(String[] args) { // TODO Auto-generated method stub Scanner sc=new Scanner(System.in); //提示用户输入成绩 System.out.println("请输入成绩"); //当用户输入成绩后,用变量保存用户输入的成绩 double cj=sc.nextDouble(); //判断cj是否大于100,如大于100,提示重新输入 //为了将成绩转成10、9、8、7、6、5、4、3、2、1、0,所以将作以下转换 //(int)表示强制转换为整形 int dj=(int)cj/10; if(cj<0 && cj>100) { switch(dj) { case 10: System.out.println("优秀"); break;//跳出switch case 9: System.out.println("优秀"); break;//跳出switch case 8: System.out.println("良好"); break;//跳出switch case 7: System.out.println("一般"); break;//跳出switch case 6: System.out.println("及格"); break;//跳出switch default://如果上面的都没有相应的值,那么就按默认的情况处理 System.out.println("不及格"); } } System.out.println("请输入正确成绩!"); } }
时间: 2024-03-08 07:48:43 浏览: 24
这段代码存在一些问题,建议进行以下优化:
1. 在判断成绩是否在0-100之间时,应该使用`&&`而不是`||`。
2. 当成绩不在0-100之间时,应该直接输出错误提示并结束程序,而不是继续执行后面的代码。
3. 在将成绩转换为等级时,可以使用数组代替switch语句,使代码更加简洁。
4. 代码格式不太规范,建议进行调整。
以下是优化后的代码:
```
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入成绩");
double cj = sc.nextDouble();
if (cj < 0 || cj > 100) {
System.out.println("请输入正确成绩!");
return;
}
int[] score = {10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0};
int dj = (int) cj / 10;
System.out.println(score[dj]);
}
}
```
优化后的代码更加简洁明了,同时也更加符合Java的编码规范。
相关问题
解释package shiyan2; import java.util. Scanner; public class student { public static void main(String[] args) { // TODO Auto-generated method stub 11从界面接收输入的信息 Scanner sc = new Scanner(@ System.in); Stu a = new Stu(sc.next,sc.next,sc.nextFloat a.show; a.calGpa); sc.close0!
这段代码是一个Java程序,它定义了一个名为`student`的类,其中包括一个名为`main`的方法。这个方法的作用是从用户输入中获取学生的信息(姓名、学号、成绩等),计算学生的GPA并输出。具体来说,这个程序使用了Java标准库中的Scanner类来获取用户输入,然后通过调用Stu类的show和calGpa方法来输出学生信息和计算GPA。在程序结尾处,使用了`sc.close()`来关闭Scanner对象,以释放资源。需要注意的是,这段代码有一些语法错误,例如缺少了括号、分号等。如果要让它能够编译通过,需要进行一些修正。
修改以下代码package kdad; public class fjks { public static void main(String[] args) { // TODO Auto-generated method stub Scanner scanner = new Scanner(System.in); System.out.print("请输入学生的成绩:"); int grade = scanner.nextInt(); if (grade >= 90 && grade <= 100) { System.out.println("该学生的等级为优秀"); } else if (grade >= 80 && grade < 90) { System.out.println("该学生的等级为良好"); } else if (grade >= 70 && grade < 80) { System.out.println("该学生的等级为中等"); } else if (grade >= 60 && grade < 70) { System.out.println("该学生的等级为及格"); } else { System.out.println("该学生的等级为不及格"); } scanner.close(); } }
您要修改的是代码的包名和类名,可以根据您的需求来修改。例如,如果您想将包名修改为 `com.example`,将类名修改为 `GradeLevelChecker`,则修改后的代码如下:
```java
package com.example;
import java.util.Scanner;
public class GradeLevelChecker {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("请输入学生的成绩:");
int grade = scanner.nextInt();
if (grade >= 90 && grade <= 100) {
System.out.println("该学生的等级为优秀");
} else if (grade >= 80 && grade < 90) {
System.out.println("该学生的等级为良好");
} else if (grade >= 70 && grade < 80) {
System.out.println("该学生的等级为中等");
} else if (grade >= 60 && grade < 70) {
System.out.println("该学生的等级为及格");
} else {
System.out.println("该学生的等级为不及格");
}
scanner.close();
}
}
```
注意,包名和类名的修改需要同时修改对应的文件名。例如,如果您将类名修改为 `GradeLevelChecker`,那么文件名也应该改为 `GradeLevelChecker.java`。