四:选择结构

目录

01、流程概述

02、顺序结构

03、选择结构(分支结构)

3.1、if选择结构

       3.1.1、单分支If选择结构

       3.1.2、双分支if-else选择结构

       3.1.3、多分支if-else-if选择结构

       3.1.4、If选择结构的嵌套

3.2、switch-case选择结构

04、循环结构

4.1、for循环

4.2、while循环

4.3、do-while循环

4.4、嵌套循环

4.5、break、continue的使用


01、流程概述

02、顺序结构

03、选择结构(分支结构)

        选择结构(分支结构)包括:

               (1) if选择结构

                        单分支if选择结构

                        双分支if-else选择结构

                        多分支if-else-if选择结构

                (2)Switch-case选择结构

	(1)单分支if选择结构
			If(条件){
				//代码块
			}
	(2)双分支If选择结构:
			if(条件){
				//代码块1
			}else{
				//代码块2
			}
	(3)多分支if选择结构:
			If(条件1){
				//代码块1
			}else if(条件2){
				//代码块2
			}else if(条件3){
				//代码块3
			}......
			
			}else{
				//代码块n
			}

3.1、if选择结构

       3.1.1、单分支If选择结构

 (1)语法结构

    if(条件){
		//代码块
	}

(2) 执行规律

  •         如果条件为true,执行{}中的代码,执行完成,继续往下执行{}后面的代码
  •         如果条件为false,执行{}后面的代码

(3)注意:

  •         条件不管多么简单还是多么复杂,都只能是布尔值

(4)案例:

        案例1:张浩Java成绩大于90分,老师奖励他iPhone6s ,该怎么做呢?

        案例2:

                /*
                 * 张浩Java成绩大于90分,并且音乐成绩大于80分时,
                 * 或者Java成绩等于100分,音乐成绩大于70分时,
                 * 老师奖励他,该怎么做呢?
                 * */

        案例3:

                  /*
                 * 如果张浩Java考试成绩大于90分,老师就奖励他一个iPhone6s 
                 * 否则老师就罚他蹲马步
                 */

案例1:
    //张浩Java成绩大于90分,老师奖励他iPhone6s ,该怎么做呢?

package com.bdqn.demo02;
public class Demo01 {
	public static void main(String[] args) {
				


				//声明一个变量javaScore用来存储张浩的Java成绩
				double javaScore = 95;

				//根据张浩的java成绩判断他能不能拿到奖励
				if(javaScore>=90){
					System.out.println("奖励一部iPhone6S");
				}		
				System.out.println("继续努力");
	}
}
案例2:
   		/*
		 * 张浩Java成绩大于90分,并且音乐成绩大于80分时,
		 * 或者Java成绩等于100分,音乐成绩大于70分时,
		 * 老师奖励他,该怎么做呢?
		 * 
		 * */
    
package com.bdqn.demo02;

public class Demo02 {

	public static void main(String[] args) {

        //声明一个变量javaScore用来存储张浩的java成绩
		double javaScore = 95;
        //声明一个变量musicScore用来存储张浩的音乐成绩
		double musicScore = 88;
		if(javaScore>90&&musicScore>80||javaScore==100&&musicScore>70){
			System.out.println("获得老师奖励的iPhone6S");
			
		}
		System.out.println("继续努力");


	}

}
案例3:
    /*
	 * 如果张浩Java考试成绩大于90分,老师就奖励他一个iPhone6s 
	 * 否则老师就罚他蹲马步
	 */

package com.bdqn.demo02;
public class Demo03 {
	public static void main(String[] args) {

		double javaScore = 9;
		
		//张浩java成绩满足要求,获得奖励
		if(javaScore>=90){
			System.out.println("奖励一部iPhone6s");
		}
		
		//张浩Java成绩不满足要求,受处罚
		if(javaScore<90){
			System.out.println("蹲马步");
		}
		
		System.out.println("继续努力");

	}

}

       3.1.2、双分支if-else选择结构

(1)语法结构

		/* 			if(条件){
		 * 				//代码块1;
		 * 			}else{
		 * 				//代码块2;
		 * 			}
         */

(2)执行规律

  • 如果条件为true,执行代码块1,执行完之后,执行if-else结构后面的代码
  • 如果条件为false,执行else{}里面的代码块2,执行完之后,执行if-else结构后面的代码

(3)注意:

  •  条件为布尔值
  • 如果代码块1只有一条语句,代码块1所在的{}可以省略,但不建议

(4)案例:

        案例1:

        /*
         * 如果张浩Java考试成绩大于等于90分,老师就奖励他一个iPhone6s 
         * 否则老师就罚他蹲马步
         */

案例1:
		/*
		 * 如果张浩Java考试成绩大于等于90分,老师就奖励他一个iPhone6s 
		 * 否则老师就罚他蹲马步
		 */

package com.bdqn.demo02;

public class Demo04 {

	public static void main(String[] args) {
		
		/*
		 * 双分支if选择结构:if-else选择结构
		 * 		语法结构:
		 * 			if(条件){
		 * 				//代码块1;
		 * 			}else{
		 * 				//代码块2;
		 * 			}
		 * 		执行规律:
		 * 			如果条件为true,执行代码块1,执行完之后,执行if-else结构后面的代码
		 * 			如果条件为false,执行else{}里面的代码块2,执行完之后,执行if-else结构后面的代码
		 * 		注意:
		 * 			条件为布尔值
		 * 			如果代码块1只有一条语句,代码块1所在的{}可以省略,但不建议
		 */

		double javaScore = 9;
		
		if(javaScore>=90){
			System.out.println("奖励iPhone6s");
		}else{
			System.out.println("蹲马步");
		}
		
		System.out.println("继续努力");
		
		

	}

}

       3.1.3、多分支if-else-if选择结构

(1)语法结构

		/*
		 * 多重if选择结构---》if-else-if选择结构
		 * 		语法结构:
		 * 			if(条件1){
		 * 				//代码块1
		 * 			}else if(条件2){
		 * 				//代码块2
		 * 			}else if(条件3){
		 * 				//代码块3
		 * 			}....
		 * 
		 * 			}else{
		 * 				//代码块n
		 * 			}
         */

 (2)执行规律

  1. 先判断条件1,如果条件1为true,执行代码块1,执行完之后结束整个if-else-if结构,执行该结构后面的代码
  2. 如果条件1为false,继续往下判断条件2,如果条件2为true, 执行代码块2,执行完之后结束整个if-else-if结构,执行该结构后面的代码
  3. 如果条件2为false,继续往下判断条件3,如果条件3为true,执行代码块3,执行完之后结束整个if-else-if结构,执行该结构后面的代码
  4. ......
  5. 如果所有的条件都为false,执行else里面的代码块n

 (3)注意: 

        (1)条件为布尔值
        (2)else if可以有1个、2个、多个
        (3)else也可以省略,如果所有的条件不成立,也没有else,那么整个if-else-if结构不执行
        (4)多重if选择结构中各个条件的顺序不可以任意排列,要求从上往下由严格到宽松。 

 (4)案例

        案例1:

                /*
                 * 对学员的考试成绩评测
                 * 成绩>=80 :良好 
                 * 成绩>=60 :中等
                 * 成绩<60   :差 
                 */   

案例1:
		/*
		 * 对学员的考试成绩评测
		 * 成绩>=80 :良好 
		 * 成绩>=60 :中等
		 * 成绩<60   :差 
		 */

package com.bdqn.demo02;

public class Demo05 {

	public static void main(String[] args) {
		
		double javaScore = 95;
		
		if(javaScore>=80){
			System.out.println("良好");
		}else if(javaScore>=60){
			System.out.println("中等");
		}else{
			System.out.println("差");
		}

		System.out.println("继续努力");
		
		

	}

}

       3.1.4、If选择结构的嵌套

(1)语法结构

		/* 		if(条件1){
		 * 			//代码块1
		 * 			if(条件2){
		 * 				//代码块2
		 * 			}else{
		 * 				//代码块3
		 * 			}
		 * 		}else{
		 * 			//代码块4
		 * 		}
         */

(2)执行规律

  • 判断条件1,条件1为true,执行代码块1,进一步判断条件2,条件为true,执行代码块2,条件2为false,执行代码块3,执行完之后,结束整个所有的if结构
  •  条件1为falae,执行下面else里的代码块4

(3)案例:

            案例1:此题使用到Scanner类对象、equals方法

                 /*
                 * 学校举行运动会,百米赛跑跑入10 秒内的学生有资格进决赛,
                 * 根据性别分别进入男子组和女子组

                 *
                 */

案例1:此案例使用到了输入语句Scanner、equals等
    	/*
		 * 学校举行运动会,百米赛跑跑入10 秒内的学生有资格进决赛,
		 * 根据性别分别进入男子组和女子组
		 */

package com.bdqn.demo02;

import java.util.Scanner;

public class Demo06 {

	public static void main(String[] args) {

		
		//创建Scanner类对象
		Scanner input = new Scanner(System.in);
		System.out.println("请输入你的百米赛跑成绩:");
		
		//从键盘获取数据
		double runScore =input.nextDouble();
		
		//根据成绩判断能不能进入决赛
		if(runScore<10){
			System.out.println("恭喜你,进入百米赛跑决赛");
			
			//根据性别判断进入男子组还是女子组
			System.out.println("请输入你的性别:");
			//从键盘获取性别数据
			String sex =input.next();
			
			/*
			 * 以下使用到了equals方法,与==类似,但又有所不同,次数不做详细解释
			 * 对比:
			 * int a=20;
			 * int b=20;
			 * System.out.println(a.equals(b));
			 * System.out.println(a==b);
			 * 输出结果都为true,效果类似
			 * 
			 * 具体解析,请翻看我的专栏:JavaSE,进行寻找equals方法进行查看
			 * */
			
			//根据性别判断决定进入男子组还是女子组
			if(sex.equals("男")){
				System.out.println("进入男子组");
			}else if(sex.equals("女")){
				System.out.println("进入女子组");
			}else{
				System.out.println("对不起,暂时还没有针对你的性别开展比赛");
			}
		}else{
			System.out.println("很遗憾,不能进入百米赛跑决赛");
		}					
	}
}

1、练习1: 

练习1:		
       /* if选择结构嵌套练习:
		* 		根据天气决定活动类型:
		* 			晴天:
		* 				28°以上:室内游泳
		* 				28°以下:室外篮球
		* 			雨天:
		* 				25°以上:室内羽毛球
		* 				25°以下:在家敲代码
		* 			其它天气:
		* 				在家睡觉
		*/

package com.bdqn.demo02;
//导入包
import java.util.Scanner;
public class Demo07 {
	public static void main(String[] args) {
		
		//创建Sanner类对象
		Scanner input = new Scanner(System.in);
		System.out.println("请输入今日天气:");
		
		//从键盘获取数据(天气)
		String tianQi = input.next();
		System.out.println("请输入今日温度值:");
		
		//从键盘获取数据(温度)
		double wenDu = input.nextDouble();
		
		/*
		 * 字符串的比较使用tianQi.equals("晴天");
		 *   解析:从键盘获取天气,当获取到的tianQi值为“晴天”时,
		         通过tianQi.equals("晴天");进行比较,则为true,
		         反之,当从键盘获取到的天气不是晴天,则为false
		 * 
		 * */	
		
		//判断tianQi.equals("晴天");是否为true
		if(tianQi.equals("晴天")){
			if(wenDu>=28){
				System.out.println("室内游泳");
			}else{
				System.out.println("室外篮球");
			}
		}else if(tianQi.equals("雨天")){
			if(wenDu>=25){
				System.out.println("室内羽毛球");
			}else{
				System.out.println("在家敲代码");
			}	
		}else{
			System.out.println("在家睡觉");
		} 
	}
}

3.2、switch-case选择结构

(1)语法结构

		//表达式的值可以是int、short、byte、char、枚举类型、String(JDK7及以后版本可以使用)
         * 	switch(表达式){
		 * 		case 常量值1:
		 * 			//代码语句;
		 * 			break;
		 * 		case 常量值2:
		 * 			//代码语句;
		 * 			break;
		 * 		case 常量值3:
		 * 			//代码语句;
		 * 			break;
		 * 		.........
		 * 		default:
		 * 			//代码语句;
		 * 			break;

(2)执行规律

  • 根据表达式的值,来与case后面的常量值进行匹配
  • 匹配上哪个常量值,就执行该case里面的代码语句,代码语句执行完,执行break,退出整个Switch选择结构,执行Switch选择结构后面的代码
  • 如果表达式的值与所有的case常量值不匹配,则执行default里面的代码语句,执行完执行break语句,退出整个Switch选择结构

(3)注意事项

  • (1)表达式的值可以是int、short、byte、char、枚举类型、String(JDK7及以后版本可以使用)
  • (2)case常量值不能相同
  • (3)default语句可以在任意位置,一般来说写在最后,也可以省略不写
  • (4)break的作用是结束整个Switch选择结构,如果不写,会造成“case穿透”现象,此现象可以合理使用
  • 案例:合理使用“case穿透”现象

                // 输出每一个月份属于哪一个季节
                // 12/1/2 冬季 3/4/5春季 6/7/8夏季 9/10/11秋季

package com.bdqn.demo02;

public class Demo03 {

	public static void main(String[] args) {
		// “case穿透”现象
		// 输出每一个月份属于哪一个季节
		// 12/1/2 冬季 3/4/5春季 6/7/8夏季 9/10/11秋季
		int month = 4;

		switch (month) {
		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;
		}

	}
}

 (4)案例:

                案例1
                 /* 韩嫣参加计算机编程大赛 
                 * 如果第一名,参加麻省理工大学组织的1个月夏令营 
                 * 如果第二名,奖励惠普笔记本电脑一部 
                 * 如果第三名,奖励移动硬盘一个
                 * 否则,不给任何奖励
                 */

案例1:
    		/*
		 * 韩嫣参加计算机编程大赛 
		 * 如果第一名,参加麻省理工大学组织的1个月夏令营 
		 * 如果第二名,奖励惠普笔记本电脑一部 
		 * 如果第三名,奖励移动硬盘一个
		 * 否则,不给任何奖励
		 */
		    //使用switch选择结构实现上述需求

package com.bdqn.demo02;

public class Demo02 {

	public static void main(String[] args) {

		int mingCi = 1;
		switch (mingCi) {
		case 1:
			System.out.println("参加麻省理工大学组织的1个月夏令营");
			break;
		case 2:
			System.out.println("奖励惠普笔记本电脑一部");
			break;
		case 3:
			System.out.println("奖励移动硬盘一个");
			break;
		default:
			System.out.println("不给任何奖励");
			break;
		}

			System.out.println("继续努力");
	}

}

04、循环结构

4.1、for循环

4.2、while循环

4.3、do-while循环

4.4、嵌套循环

4.5、break、continue的使用

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小猪VS恒哥

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值