学生成绩判断等级的方式
方法一(if-else):
直接上代码:
import java.util.Scanner;
public class Studen_ment {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
while(true) {
System.out.println("输入学生的成绩:");
int n = sc.nextInt();
Gard(n);
}
}
//成绩的等级
public static void Gard(int n){
if(n>=90){
System.out.println("优");
}else if(n>=80){
System.out.println("良");
}else if(n>=70){
System.out.println("中");
}else if(n>=60){
System.out.println("及格");
}else{
System.out.println("不及格");
}
}
}
代码分析:
首先需要从键盘录入信息需要从Java.util包中导入Scanner类(扫描的意思)
import java.util.Scanner;**
int n=sc.nextInt();
//也可以是其他数据类型,但后面的**nextInt**就需要改变
//例:
double n=sc.nextDouble();
String n=sc.next();
String n=sc.nextLine();
//两种字符串类型是一样的
但**next()和nextLine()**的不同之处在于
next()在检测到空白符结束
nextLine()在检测到回车键结束
将两种方法进行比较解释:
当输入相同数据,显示相同数据
但当next方法中输入检测到空白符时就结束了对后面信息的打印
然后回到代码
创建静态(static)等级方法接收一个参数
使用if else结构对传入参数的判断然后给出指定等级
在主方法(main方法)中使用了一个死循环可以用来不结束的输入
直接调用等级方法即可打印结果
方法二(switch-case)
import java.util.Scanner;
public class Studen_ment {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
try {
while (true) {
System.out.println("输入学生的成绩:");
int n = sc.nextInt();
Gard(n);
}
} catch (Exception e) {
System.out.println("输入的类型有误");
}
}
//成绩的等级
public static void Gard(int n) {
switch (n / 10) {
case 10:
case 9:
System.out.println("优秀");
break;
case 8:
System.out.println("良好");
break;
case 7:
System.out.println("中等");
break;
case 6:
System.out.println("及格");
break;
case 5:
case 4:
case 3:
case 2:
case 1:
case 0:
System.out.println("不及格");
break;
default:
if (n / 10 > 10 && n / 10 <= 12) {
System.out.println("优秀");
} else {
System.out.println("输入信息错误");
}
break;
}
}
}
和方法一样,但使用switch–case
相比方法一要麻烦些,通过传入的数据判断数据的范围从而打印结果
但使用switch–case比if–else要麻烦,方法二把范围限定在一个固定的范围,使用起来不是很灵活
还可以使用其他数据结构