首页 最新 热门 推荐

  • 首页
  • 最新
  • 热门
  • 推荐

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

  • 25-02-21 23:40
  • 3684
  • 11673
blog.csdn.net

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

JavaSE选择结构

文章目录

  • 什么流程控制?
  • 流程控制分以下三类
  • 流程图:
  • 选择结构的分类
  • if语句四种格式
  • switch选择结构
  • 基本if的流程图
  • 基本if的语法:
  • if小知识:
  • if的应用演示代码1如下:
  • if的应用演示代码2如下:
  • switch的使用
  • switch小知识:
  • switch演示案例:
  • break跳出switch或循环小知识(break案例演示请看下一章循环结构):
  • default的作用:
  • switch与多重if的区别

什么流程控制?

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

流程控制分以下三类

  • 顺序(如左图)

  • 选择结构(如右图)

  • 循环结构(后一课讲)

如图 :

顺序左 选择结构右

流程图:

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

选择结构的分类

  • if语句

  • switch语句

if语句四种格式

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

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

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

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

switch选择结构

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

基本if的流程图

在这里插入图片描述

基本if的语法:

if(条件){

​ //(缩进)代码块

}

if小知识:

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

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

  • 1
  • 2
  • 3
  • 4

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

package org.gyun.test;

/**
 * @ClassName:Demo1.java
 * @Description:if的应用
 * @Author:DongGaoYun
 * @URL: www.gyun.org
 * @Email:[email protected]
 * @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
	}
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32

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

package org.gyun.test;

/**
 * @ClassName:Demo2.java
 * @Description:if复杂应用
 * @Author:DongGaoYun
 * @URL: www.gyun.org
 * @Email:[email protected]
 * @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("给予奖励!");
		}
	}
}

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • 77
  • 78
  • 79
  • 80
  • 81
  • 82
  • 83
  • 84
  • 85
  • 86
  • 87
  • 88
  • 89
  • 90
  • 91
  • 92
  • 93
  • 94
  • 95
  • 96
  • 97
  • 98
  • 99
  • 100
  • 101
  • 102

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;
        }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19

switch小知识:

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

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:[email protected]
 * @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("不给任何奖励");
        }
    }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • 77
  • 78
  • 79
  • 80
  • 81
  • 82
  • 83
  • 84
  • 85
  • 86
  • 87

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

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

作用:
    结束(终止)switch或者循环
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

default的作用:

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

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(登录(包含拦截器)和注销

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

文章知识点与官方知识档案匹配,可进一步学习相关知识
Java技能树Java中的运算符比较运算符150366 人正在系统学习中
注:本文转载自blog.csdn.net的青云交的文章"https://blog.csdn.net/atgfg/article/details/100538876"。版权归原作者所有,此博客不拥有其著作权,亦不承担相应法律责任。如有侵权,请联系我们删除。
复制链接
复制链接
相关推荐
发表评论
登录后才能发表评论和回复 注册

/ 登录

评论记录:

未查询到任何数据!
回复评论:

分类栏目

后端 (14832) 前端 (14280) 移动开发 (3760) 编程语言 (3851) Java (3904) Python (3298) 人工智能 (10119) AIGC (2810) 大数据 (3499) 数据库 (3945) 数据结构与算法 (3757) 音视频 (2669) 云原生 (3145) 云平台 (2965) 前沿技术 (2993) 开源 (2160) 小程序 (2860) 运维 (2533) 服务器 (2698) 操作系统 (2325) 硬件开发 (2491) 嵌入式 (2955) 微软技术 (2769) 软件工程 (2056) 测试 (2865) 网络空间安全 (2948) 网络与通信 (2797) 用户体验设计 (2592) 学习和成长 (2593) 搜索 (2744) 开发工具 (7108) 游戏 (2829) HarmonyOS (2935) 区块链 (2782) 数学 (3112) 3C硬件 (2759) 资讯 (2909) Android (4709) iOS (1850) 代码人生 (3043) 阅读 (2841)

热门文章

101
推荐
关于我们 隐私政策 免责声明 联系我们
Copyright © 2020-2025 蚁人论坛 (iYenn.com) All Rights Reserved.
Scroll to Top