导图社区 计算机
if(关系表达式){语句体}:(1)判断关系表达式的结果,是true,还是false,(2)若关系表达式的结果是true,执行语块,接着继续执行其它语句。
编辑于2022-01-16 20:24:41day04流程与选择结构
第一章 流程控制
流程控制概念
在一个程序执行的过程中,每一行代码的执行顺序。顺序不同所产生的结果也不同。
流程控制语句分类
顺序结构
分支结构(if, switch)
循环结构(for, while, do…while)
顺序结构
代码从上到下执行,没有特殊用法
开始→语句A→语句B→语句C→结束
第二章 选择语句
选择格式的概念
在执行程序的过程中可以根据条件选择是否要执行某一部分代码。
2.2 选择结构的分类
if(关系表达式){语句体}
1.格式:
if(关系表达式){语句块;} 其它语句;
2.执行流程
(1)判断关系表达式的结果,是true,还是false
(2)若关系表达式的结果是true,执行语块,接着继续执行其它语句
(3)若关系表达式的结果是false,不执行语句块,直接执行其它语句
概要
3.注意事项:
(1)if语句的第一种格式: 只适用于有一个条件的情况 理解为: 有 和 无的情况
(2)语句体要么执行,要么不执行,由()中的关系表达式的结果决定
(3){}中如果只有一条语句,那么{}可以省略 建议初学者: 保留{}
4.练习
判断两个数是否相同
if (关系表达式) { 语句体1; } else { 语句体2; } 其它语句;
1.格式
if(关系表达式) { 语句体1; } else { 语句体2; } 其它语句;
2.执行流程
(1)判断关系表达式的结果,是true,还是false
(2)如果关系表达式的结果是true,执行语句块1,继续执行其它语句
(3)如果关系表达式的结果是false,执行语句块2,继续执行其它语句
概要
3.注意事项
(1)if-else语句: 适用于有两个条件的情况
(2)语句体1和语句体2,只(必须)有一个会被执行
4.练习
1.判断两个数是否相同
2.判断一个整数的奇偶性
3.计算两个数据的最大值
if (关系表达式1) { 语句体1; } else if (关系表达式2) { 语句体2; } … else if (关系表达式n) { 语句体n; }
1.格式
if(关系表达式1) { 语句体1; } else if(关系表达式2) { 语句体2; } ... else if(关系表达式n) { 语句体n; } else { 语句体n+1; } 其它语句;
2.执行流程
(1)判断关系表达式1
(2)成立就执行语句体1;不成立就判断关系表达式2的值
(3)如果值为true就执行语句体2;如果值为false就计算关系表达式3的值
(4)…
(5)如果没有任何关系表达式为true,就执行语句体n+1。
概要
3.注意事项
(1)适用于有多种(2种以上)条件的情况
(2)语句体1到语句体n+1,只有一条语句会被执行
(3)最后一个else作用: 做收尾工作,如果所有的条件都不成立(false),执行最后一个else中的语句体
(4)最后一个else,是没有写if的主题
第三章 Switch结构
switch语句格式
switch(表达式) { case 常量值1; 语句体1; break; case 常量值2; 语句体2; break; ... case 常量值n; 语句体n; break; default: 语句体n+1; break; } 其它语句;
注意事项
在switch中,表达式可以是某些基本类型,也可以是某些基本引用型 基本类型:byte short char int 引用类型:字符串、枚举
switch具有穿透性
default的作用和位置无关。一般建议放在最后,最后的default
执行流程
(1)首先计算出表达式的值
(2)其次,和case依次比较,一旦有对应的值,就会执行相应的语句,在执行的过程中,遇到break就会结束。
(3)最后,如果所有的case都和表达式的值不匹配,就会执行default语句体部分,然后程序结束掉。
概要
练习
根据用户输入数字判断是星期几
package com.hhx01; //导包 import java.util.Scanner; public class Week { public static void main(String[] args) { //2.创建对象 Scanner scan = new Scanner(System.in); //3.接受用户输入的数据 System.out.println("请您输入一个1到7之间的整数: "); int number = scan.nextInt(); switch (number) { case 1: System.out.println("今天是周一"); break; case 2: System.out.println("今天是周二"); break; case 3: System.out.println("今天是周三"); break; case 4: System.out.println("今天是周四"); break; case 5: System.out.println("今天是周五"); break; case 6: System.out.println("今天是周六"); break; case 7: System.out.println("今天是周七"); break; default: System.out.println("请输入合理数字"); } } }
2.先输入一个年份,然后输入一个月份,判断该年该月有多少天
package com.hhx01; //导包 import java.util.Scanner; public class Year_Month { public static void main(String[] args) { //创建对象 Scanner sc = new Scanner(System.in); //接受用户数据: System.out.println("请输入年份"); int year = sc.nextInt(); System.out.println("请输入月份"); int month = sc.nextInt(); //使用switch判断某年某月的天数 switch (month) { case 1: case 3: case 5: case 7: case 8: case 10: case 12: System.out.println(year+"年"+month+"月"+31+"天"); break; case 4: case 6: case 9: case 11: System.out.println(year+"年"+month+"月"+30+"天"); break; case 2: if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0){ System.out.println(year+"年"+month+"月"+29+"天"); } else{ System.out.println(year+"年"+month+"月"+28+"天"); }