输入成绩,判断成绩等级&If&Switch

博客介绍了输入成绩判断等级的两种方法,即if语句和switch语句。详细说明了switch语句的语法结构、执行流程及注意事项,还比较了if和switch语句,指出switch支持常量值相等判断,效率更高、逻辑更清晰,而if语句更灵活。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

输入成绩,判断成绩等级 if & switch

if语句判断方法:

import java.util.Scanner;

public class ScoreIf {
	public static void main(String[] args){
		Scanner sc = new Scanner(System.in);
		System.out.println("请输入成绩");
		int score = sc.nextInt();
		
		score /= 10; //等價 score = score / 10;
		
		if(0 <= score && score < 6){
			System.out.println("不及格");
		}else if(score == 6){
			System.out.println("及格");
		}else if(score == 7){
			System.out.println("良好");
		}else if(score == 8){
			System.out.println("優秀");
		}else if(score == 9){
			System.out.println("蒂花之秀");
		}else if(score == 10){
			System.out.println("秀");
		}else{
			System.out.println("非法输入");
		}
		
		/*//除以10,可減少條件的判斷
		if (0 <= score && score < 60){
			System.out.println("不及格");
		}else if( 60 <= score && score < 70){
			System.out.println("及格");
		}else if(70 <= score && score < 80){
			System.out.println("良好");
		}else if(80 <= score && score <= 90){
			System.out.println("优秀");
		}else if(90 <= score && score < 100){
			System.out.println("棒棒哒");
		}else if(score == 100){
			System.out.println("That is so good!!");
		}else{
			System.out.println("非法输入");
		}*/
	}
}

.
.

switch方法判断:

public class score {
	public static void main(String[] args) {
		
		for (int i = 0; i < 5; i++) {

			int score = (int) (Math.random() * 101); // [0,100]
			System.out.println("分数是:" + score);

			score /= 10;
			if (score < 6)
				score = 0;
			switch (score) {
			case 0:
				System.out.println("不及格");
				break;
			case 6:
				System.out.println("及格");
				break;
			case 7:
				System.out.println("良好");
				break;
			case 8:
				System.out.println("优秀");
				break;
			case 9:
				System.out.println("天秀");
				break;
			case 10:
				System.out.println("蒂花之秀");
				break;

			default:
				break;
			}
		}
	}
}

switch语法结构:

switch(值){
    case 值1: {}
    //表达式的值是value1时的执行体-语句块1;
         [break;]
    case value2:{}
    //表达式的值是value2时的执行体-语句块2;
         [break;]
    ...
    case valueN:{}
    //表达式的值是valueN时的执行体-语句块N;
         [break;]
    [default:{}]
    //上面条件都不满足时的执行体-语句块N+1;
}   

说明:
1.switch小括号的值必须为byte,short,int,char和枚举类型,JDK1.7支持String类型;
2.每个case语句后的值必须是与值类型兼容的特定的一个常量(字面常量或者是final修饰的变量);
3.可以有多个case 但每个case语句后的值不允许重复;
4.default语句是可选语句;
5.break 关键字也是可选的 ;

执行流程:
先确定switch后小括号的值 ,用该值顺次与case对应的value值进行判断,一旦发现有相等的value值, 就停止比较并执行其对应的语句块;

与值相等的case后的语句块执行完毕之后 ,会跳到下一个case处 ,但不会再进行值的判断了 ,而是继续执行下个case后的语句块 ;也会执行default后的语句块 ;

如果所有的case的值都和switch的值不等 , 那么会执行default后的语句块 , 执行完毕后结束整个switch ; 如果没default ,则直接结束switch语句;

注意 : 在switch语句执行的过程中 , 无论是在那里遇到了 break ; 就会在执行到 break 的地方 结束整个 switch 语句 ;
.
备注:
if选择语句和switch选择语句的比较:
switch语句只支持常量值相等的分支判断,而if语句支持更为灵活,任意布尔表达式均可;
switch语句通常比一系列嵌套if语句效率更高;逻辑更加清晰
.
.
案例1:

import java.util.Scanner;

public class TestSwitch {
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Scanner sc = new Scanner(System.in);
		System.out.println("请输入1-7中任意一个数字");
		int weekday = sc.nextInt();
		switch(weekday){  //i只能是int short byte  string enum
		case 1 : {
			System.out.println("Monday");
			break;
		}
		case 2 : {
			System.out.println("Tuesday");
			break;
		}
		case 3 : {
			System.out.println("Wednesday");
			break;
		}
		case 4 : {
			System.out.println("Thursday");
			break;
		}
		case 5 : {
			System.out.println("Friday");
			break;
		}
		case 6 : {
			System.out.println("Saturday");
			break;
		}
		case 7 : {
			System.out.println("Sunday");
			break;
		}
		default : {
			System.out.println("Your input number is wrong.");
		}
		}
	}
}

案例2:


public class SeasonSwitch {
	public static void main(String[] args){
		int i = (int)(Math.random() * 12 + 1); //[0,12]
		System.out.println("产生的数字:" + i);
		switch(i){
		case 12:
		case 1:
		case 2: System.out.println("寒冷的冬季");break;
		
		case 3:
		case 4:
		case 5: System.out.println("温暖的春天");break;
		
		case 6: 
		case 7:
		case 8:System.out.println("炎热的夏天");break;
		
		case 9:
		case 10:
		case 11: System.out.println("收货的季节秋");break;
		
		default :System.out.println("出现了未知错误");
		}
		System.out.println("main-gg");
	}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值