Java入门-Java学习路线课程第三课:选择结构

本博客地址 | GitHub | 更多资源免费下载

JavaSE选择结构

什么流程控制?

  • 就是用来控制程序中各语句的执行顺序。

流程控制分以下三类

  • 顺序(如左图)

  • 选择结构(如右图)

  • 循环结构(后一课讲)

如图 :

顺序左 选择结构右

流程图:

逐步解决指定问题的步骤和方法的一种图形化表示方法
流程图

选择结构的分类

  • if语句

  • switch语句

if语句四种格式

  • 基本if选择结构:可以处理单一或组合条件的情况

  • if-else选择结构:可以处理简单的条件分支情况

  • 多重if选择结构:可以处理分段的条件分支情况

  • 嵌套if选择结构:可以处理复杂的条件分支情况

switch选择结构

  • 多重分支并且条件判断是等值判断的情况

基本if的流程图

在这里插入图片描述

基本if的语法:

if(条件){

​ //(缩进)代码块

}

if小知识:

当有一条语句时,可以省略{},但不推荐。

if后面括号的条件结果只能为truefalse,如果条件为true,则执行代码块,否则不执行。

if的应用演示代码1如下:

package org.gyun.test;

/**
 * @ClassName:Demo1.java
 * @Description:if的应用
 * @Author:DongGaoYun
 * @URL: www.gyun.org
 * @Email:DongGaoYun@qq.com
 * @QQ:1050968899
 * @WeiXin:QingYunJiao
 * @Date:2019-9-3 下午4:25:01
 * @Version:1.0
 */
public class Demo1 {

	/**
	 * 主方法 实现需求:  	 * 
	 * if 在一条语句的情况下,可以省略{},不推荐省略!强烈要求加{}	 * 
	 */
	public static void main(String[] args) {
		// 变量声明赋值
		int num = 10;
		// 判断
		if (num > 10)//注意没有加{}注意缩进
			System.out.println(num);
		// 更新num 
		num++; // 注意:这个一行不用考虑++在前还是后,即num的值就是num+1
		System.out.println(++num); // 打印是num自加1之后的值,即打印为:12
		System.out.println(num++); // 打印是num先赋值时的值,注意:不是自加1后的值,即打印为:12
		System.out.println(num); // 打印是num自加1之后的值,即打印为:13
	}
}

if的应用演示代码2如下:

package org.gyun.test;

/**
 * @ClassName:Demo2.java
 * @Description:if复杂应用
 * @Author:DongGaoYun
 * @URL: www.gyun.org
 * @Email:DongGaoYun@qq.com
 * @QQ:1050968899
 * @WeiXin:QingYunJiao
 * @Date:2019-9-3 下午4:59:36
 * @Version:1.0
 */
public class Demo2 {
	/**
	 * 主方法: 分析需求:
	 */
	public static void main(String[] args) {
		// 调用方法
		// demo1();
		// demo2();
		// demo3();
		// 需求: 如果百米赛跑在10秒内 可以根据条件进入男子和女子组
		// 语法: if(条件){} 注意:条件的结果是布尔值,即true和false 是true,则执行代码块,否则不执行!
		// 声明变量
		String sex = "男";
		int s = 91;
		// if判断
		if (s < 10) {// 结果为true
			// 注意java里比较字符串用equals
			if ("男".equals(sex)) {
				System.out.println("进入男子组");
			} else if ("女".equals(sex)) {
				System.out.println("进入女子组");
			} else {
				System.out.println("sex未知");
			}
		} else {// false,就执行这一行打印
			System.out.println("淘汰了");
		}
	}

	// 多重if选择结构  使用多重if选择语句处理问题时需要注意顺序,切记不能任意调换。
	private static void demo3() {
		// 声明变量
		int java = 91;
		// 互斥
		if (java >= 100) {
			System.out.println("良好");
		} else if (java >= 80) {
			System.out.println("中等");
		} else if (java >= 60) {
			System.out.println("及格");
		} else {
			System.out.println("差");
		}
	}

	// 使用if-else选择结构
	private static void demo2() {
		// 声明变量
		int java = 91;
		// 互斥
		if (java > 90) {
			System.out.println("给予奖励!");
		} else {
			System.out.println("蹲马步");
		}
	}

	/**
	 * 基本的if选择结构
	 * 
	 * 使用复杂条件的if选择结构  如:	if (java > 90 && music > 80 || java == 100 && music > 70) {
	 * 
	 * 结合运算符的优先级编写条件**
	 * 
	 * 最高的优先级:( )
	 * 
	 * 最低的优先级:=
	 * 
	 * 优先级:!> 算术运算符 > 关系运算符 > && > ||
	 * 
	 * 复杂条件使用括号提高可读性 
	 * 
	 * 需求条件:
	 * 达成其中一个条件,就给予奖励 
	 * 1.条件1 java>90 且music>80 
	 * 2.条件2 java==100 且 music>70
	 */
	// 
	private static void demo1() {
		// 声明变量
		int java = 91;
		int music = 81;
		// 结果为true,就打印:给予奖励!
		if (java > 90 && music > 80 || java == 100 && music > 70) {
			System.out.println("给予奖励!");
		}
	}
}

switch的使用

	 switch (表达式) {
          
            case 1:
                //执行需求块 如:System.out.println("参加北京大学组织的1个月夏令营");
                //不要忘记break
                break;
            case 2:
                //执行需求块 如:System.out.println("奖励外星人笔记本电脑一台 ");
                //不要忘记break
                break;
            case 3:
                //执行需求块 如:System.out.println("奖励手机一部 ");
                //不要忘记break
                break;
            default:
                //执行需求块 如:System.out.println("不给任何奖励 ");
                //不要忘记break
                break;
        }

switch小知识:

使用switch选择结构要注意以下几点:
   1.多个case后的常量不能重复   
   2.switch后的小括号中的表达式只允许为:
          基本数据类型:char byte short int
          引用数据类型:String enum(枚举,后面会学)    
   3.switch语句的前后顺序可以进行颠倒。
   
使用场景:
   必须是等值判断。

switch演示案例:

package org.gyun.test;

import java.util.Collections;
import java.util.Scanner;

/**
 * MyEclipse 10.7.1工具会报错
 * 以下使用的工具为:Idea 2018.3
 * @ClassName:Demo3.java
 * @Description:switch的应用
 * @Author:DongGaoYun
 * @URL: www.gyun.org
 * @Email:DongGaoYun@qq.com
 * @QQ:1050968899
 * @WeiXin:QingYunJiao
 * @Date:2019-9-5 下午1:56:14
 * @Version:1.0
 */
public class Test1 {
    /*
     * 需求: 
     * 如果第一名,参加麻省理工大学组织的1个月夏令营 
     * 如果第二名,奖励惠普笔记本电脑一部 
     * 如果第三名,奖励移动硬盘一个 
     * 否则,不给任何奖励
     * 分析需求: //变量 rank 名次
     */
    public static void main(String[] args) {
        // ifMethod();
        // 声明变量
        // int rank=1;//写死,代码没有灵活性了
        // 用Scanner对象输入数据 三步走: 引包 创建对象 使用
        Scanner input = new Scanner(System.in);
        // 用变量接收输入的值 //简洁 好用 复用
        System.out.print("请输入名次:");
        //int rank = input.nextInt();
        // switch的使用
        String rank = input.next();
        /*
        	使用switch语句要注意以下几点:
        	1.多个case后的常量不能重复
        	2.switch后的小括号中的数据类型只允许为:
        	基本数据类型:char byte short int
        	引用数据类型:String enum(枚举,后面会学) 
        	3.switch语句的前后顺序可以进行颠倒。
        */
        switch (rank) {
            //和if中的else的功能一样,只有switch中的case全都不匹配时,就会选择默认的选项default
            default:
                System.out.println("不给任何奖励 ");
                //不要忘记break
                break;
            case "a":
                System.out.println("参加麻省理工大学组织的1个月夏令营");
                //不要忘记break
                break;
            case "b":
                System.out.println("奖励惠普笔记本电脑一部 ");
                //不要忘记break
                break;
            case "c":
                System.out.println("奖励移动硬盘一个 ");
                //不要忘记break
                break;
        }
    }

    private static void ifMethod() {
        // 声明变量
        // int rank=1;//写死,代码没有灵活性了
        // Scanner对象 三步走: 引包 创建对象 使用
        Scanner input = new Scanner(System.in);
        // 用变量接收输入的值 //简洁 好用 复用
        System.out.print("请输入名次:");
        int rank = input.nextInt();
        // 多重if
        if (rank == 1) {
            System.out.println("参加麻省理工大学组织的1个月夏令营");
        } else if (rank == 2) {
            System.out.println("奖励惠普笔记本电脑一部 ");
        } else if (rank == 3) {
            System.out.println("奖励移动硬盘一个 ");
        } else {
            System.out.println("不给任何奖励");
        }
    }
}

break跳出switch或循环小知识(break案例演示请看下一章循环结构):

使用场景:
     1.在选择结构switch语句中使用
     2.在循环语句中使用
     3.其它场景使用没有作用

作用:
    结束(终止)switch或者循环

default的作用:

和if中的else的功能一样,只有switch中的case全都不匹配时,就会选择默认的选项default

switch与多重if的区别

  • 相同点:

都是用来处理多分支条件的结构

  • 异同点:

switch选择结构:只能处理等值条件判断的情况

多重if选择结构:没有switch选择结构的限制,特别适合某个变量处于某个连续区间时的情况


———— 精 选 文 章 ————
  1. Java入门-Java学习路线课程第一课:初识JAVA
  2. Java入门-Java学习路线课程第二课:变量与数据类型
  3. Java入门-Java学习路线课程第四课:循环结构
  4. Java入门-Java学习路线课程第五课:一维数组
  5. Java入门-Java学习路线课程第六课:二维数组
  6. Java入门-Java学习路线课程第七课:类和对象
  7. Java入门-Java学习路线课程第八课:方法和方法重载
  8. Java入门-Java学习路线扩展课程:equals的使用
  9. Java入门-Java学习路线课程面试篇:取商 / 和取余(模) % 符号的使用
  10. Java进阶-Java学习路线课程第一课:Java集合框架-ArrayList和LinkedList的使用
  11. Java进阶-Java学习路线课程第二课:Java集合框架-HashSet的使用及去重原理
  12. JavaWEB-Java学习路线课程:使用MyEclipse工具新建第一个JavaWeb项目(一)
  13. JavaWEB-Java学习路线课程:使用MyEclipse工具新建项目时配置Tomcat服务器的方式(二)
  14. Spring框架-Java学习路线课程第一课:Spring核心
  15. Spring框架-Java学习路线课程:Spring的扩展配置
  16. Springboot框架-Java学习路线课程:Springboot框架的搭建之maven的配置
  17. java学习:在给学生演示用Myeclipse10.7.1工具生成War时,意外报错:SECURITY: INTEGRITY CHECK ERROR
  18. 使用jquery发送Ajax请求的几种异步刷新方式
  19. idea Springboot启动时内嵌tomcat报错- An incompatible version [1.1.33] of the APR based Apache Tomcat Native
  20. 一个简单的SSM框架Demo(登录(包含拦截器)和注销

更多免费资源请关注微信公众号:

©️2020 CSDN 皮肤主题: 像素格子 设计师:CSDN官方博客 返回首页