switch-case与if-else的转换
Posted afangfang
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了switch-case与if-else的转换相关的知识,希望对你有一定的参考价值。
对学会成绩大于60分的,输出合格,低于60分的输出不合格
import java.util.Scanner; public class TestSwitch3 { public static void main(String[] args) { Scanner s = new Scanner(System.in); System.out.println("输入分数"); int score = s.nextInt(); if (score >= 60) { System.out.println("及格"); } else { System.out.println("不及格"); } switch (score / 10) { case 0: case 1: case 2: case 3: case 4: case 5: System.out.println("不及格"); break; case 6: case 7: case 8: case 9: case 10: System.out.println("及格"); break; default: System.out.println("输入有误"); break; } } }
说明:当有多个case语句处理的语句块一致时,可以统一的来书写
一定情况下switch-case与if-else 之间可以互相转换的。
练习:从键盘输入2014年的 month 和 day 输出 输入的日期为2014年的第几天
import java.util.Scanner; public class TestSwitch4 { // 4 6 9 11 小 public static void main(String[] args) { Scanner s = new Scanner(System.in); System.out.println("输入月份:"); int month = s.nextInt(); System.out.println("输入日期"); int day = s.nextInt(); int sum = 0;// 记录month月 day日是2014的第几天 // 使用switch-case switch (month) { case 12: sum += 30;// 30:十一月的总天数 case 11: sum += 31; case 10: sum += 30; case 9: sum += 31; case 8: sum += 31; case 7: sum += 30; case 6: sum += 31; case 5: sum += 30; case 4: sum += 31; case 3: /*判断是否是闰年 * if((year %4==0 && year%100!=0) || year %400==0){ sum += 29; }else{ sum += 28; } */ sum += 28; case 2: sum += 31;// 31是一月份的天数 case 1: sum += day; System.out.println(sum); } } }
以上是关于switch-case与if-else的转换的主要内容,如果未能解决你的问题,请参考以下文章
使用函数指针和多态代替冗长的if-else或者switch-case
if-else和switch-case哪个效率更高?看这四张图。
有啥方法可以减少程序中条件语句if-else或者switch-case的过多嵌套?