输⼊成绩,判断成绩等级IfSwitch 输⼊成绩,判断成绩等级 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:
switch case判断字符串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.");
}
}
}
}
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");
}
}
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论