【Java语言】—顺序结构、分支结构

  • Post author:
  • Post category:java




流程控制语句

Java提供了一些流程控制语句,来控制程序的执行流程。

在这里插入图片描述



1.顺序结构

按照代码的先后顺序,以此执行程序。

在这里插入图片描述



2.分支结构



(1)if分支

根据判断的结果(真或假)决定执行某个分支的代码。


if分支有三种格式

  • 格式1:
if (条件表达式) {
	语句体;
}
  • 格式2:
if (条件表达式) {
	语句体1;
} else {
	语句体2;
}
  • 格式3:
if (条件表达式1) {
	语句体1;
} else if(条件表达式2){
	语句体2;
} else if(条件表达式3){
	语句体3;
}
...
else {
语句体n+1;
}



(2)switch分支

也是匹配条件去执行分支,适合做值匹配的分支选择,结构清晰,格式良好。

switch(表达式){
	case1:
		执行代码...;
		break;
	case2:
		执行代码...;
		break;
	...
	case 值n-1:
		执行代码...;
		break;
	default:
		执行代码n;		
}

执行流程:

①先执行表达式的值,拿着这个值去与case后的值进行匹配。

②匹配哪个case的值为true就执行哪个case,遇到break就跳出switch分支。

③如果case后的值都不匹配则执行default代码。

案例:

  • 周一:开始上班,努力工作。
  • 周二:请教问题,提升技术。
  • 周三:今晚火锅,龙虾,小啤酒。
  • 周四:逛技术论坛。
  • 周五:打吃鸡,玩王者。
  • 周六:学习,巩固基础。
  • 周日:一半开心一半忧愁。
String weekday = "周三";
switch (weekday) {
	case "周一":
    	System.out.println("开始上班,努力工作");
    	break;
    case "周二":
        System.out.println("请教问题,提升技术");
        break;
    case "周三":
        System.out.println("今晚火锅,龙虾,小啤酒");
        break;
    case "周四":
        System.out.println("逛技术论坛");
        break;
    case "周五":
        System.out.println("打吃鸡,玩王者");
        break;
    case "周六":
        System.out.println("学习,巩固基础");
        break;
    case "周日":
        System.out.println("一半开心一半忧愁");
        break;
    default:
        System.out.println("数据有误!");
}



(2)switch使用的注意事项

①表达式类型只能是byte、short、int、char,JDK5开始支持枚举,JDK7开始支持String、不支持double、float、long。

②case给出的值不允许重复,且只能是字面量,不能是变量。

③不然忘记写break,否则会出现穿透现象。



(2)switch穿透性


  • 如果代码执行到没有写break的case模块

    ,执行完后将直接进入下一个case模块执行代码(

    而且不会进行任何匹配

    ),直到遇到break才跳出分支,这就是switch的穿透性。

switch穿透性案例:(月份天数查看器)

需求:用户输入月份就可以展示该月份的天数
① 1、3、5、7、8、10、12月份是31天
② 2月份是闰年为29天,非闰年为28 天
③ 4、6、9、11月份是30天

代码:

	int month = 7;
	switch (month){
            case 1:
            case 3:
            case 5:
            case 7:
            case 8:
            case 10:
            case 12:
                System.out.println(month + "月份有31天");
                break;
            case 2:
                System.out.println(month + "月份闰年为29天,非闰年为28天");
                break;
            case 4:
            case 6:
            case 9:
            case 11:
                System.out.println(month + "月份有30天");
                break;
        }

运行结果:

在这里插入图片描述



版权声明:本文为weixin_45627039原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。