继续学习吧!今天会讲解选择结构和分支结构。
其实整体上来说循环结构还是很简单的。
一、程序的执行结构。
顺序结构:是指按照程序的语句从前往后逐条执行。
条件结构:根据逻辑条件选择执行不同的分支代码。
二、条件结构
(1)if的选择结构
(2)switch的分支结构
(1)if 单分支结构
if(布尔条件)
{
//代码块
}
执行流程:
对布尔进行判断,为真 ,先执行代码块 。为假 ,跳过代码块执行。
就是if语句判断完内容之后,为真, 先执行代码块。 为假 ,跳过代码块执行。就是后面的语句也执行。
(2)if-else 双分支
这与if 就不一样了
if else选择结构
if else 就是 不是if执行内语句,就是执行else后面语句。
if(布尔表达式)
{
//代码块1
}
else
{
//代码块2
}
结束之后再走后续代码
执行流程:
对条件表达式进行判断
结果为true,则执行语句块1后,再执行后续代码
(3)多重if选择结构
if(条件1)
{
代码块1
}
else if (条件2)
{
代码块2
}
else if (条件3)
{
代码块3
}
.........
else
{
代码块4
}
看条件1是否为真,是真,走代码块1,退出结构
看条件1是否为真,是假,判断条件2是否为真, 为真 退出结构
看条件1是否为真,是假,判断条件2是否为真, 为假 最后走else 最后,退出结构
若条件都是假 ,直接执行else 后,退出结构。
(4) 嵌套if选择结构
if(外层条件){
if(内层条件){
//内层语句块1
}else{
//内层语句块2
}
}else{
//外层语句块
}
(5)switch 分支
switch(表达式){
case 常量值1:
语句体1;
break;
case 常量值2:
语句体2;
break;
.......
default:
语句体n;
break;
}
执行流程:
(1)如果变量的值与值1相等,则执行语句块1 。
(2)如果变量的值与值2相等,则执行语句块2 。
(3)如果变量的值与值3相等,则执行语句块3 。
(4)如果变量的值与所有值都不匹配,则执行default。
语法格式说明:
变量或表达式可判断的类型:byte short int char String (JDK7.0+) 。
当匹配的case执行后,不会自动跳出switch结构,而是会继续往下判断执行。
break可以在匹配的case执行后,跳出整个switch结构。适用于等值判断。
default缺省分支可以省略,default 无论你写在哪里 一定是最后执行。
switch(week){
case1:
case2:
case3:
case4:
System.out.println("工作日")
break;
swtich 适合断点的等值比较,不适合区间范围的值比较(if适用)。这算是很省事的方法。
差不多啦,让我们做一点点练习题吧
(1):如果核酸做了13轮就可以解封了。
public class Demo01_if {
public static void main(String[] args) {
//创建Scanner变量
Scanner sc = new Scanner(System.in);
//根据输入的做核酸次数,决定是否解封 13
System.out.print("请输入你做核酸次数:");
int count = sc.nextInt();
//判断count>=13
if(count >= 13){
System.out.println("恭喜,解放了!!!");
}
System.out.println("if语句后面的代码。。。。。");
}
}
(2)输入一个整数,判断是偶数还是奇数。偶数:能被2整除 num%2==0
public class Demo01_if_else {
public static void main(String[] args) {
//创建Scanner变量
Scanner sc = new Scanner(System.in);
System.out.print("请输入一个整数:");
int num = sc.nextInt();
//判断条件
if(num%2==0){
System.out.println(num+"是偶数");
}else{
System.out.println(num+"是奇数");
}
}
}
(3)从键盘输入一个年份,判断是闰年还是平年。
闰年的判断条件是 :能被4整除但不能被100整除,或者能被400整除就是
year % 4==0 && year % 100 !=0 || year % 400 == 0
package com.qianfeng;
import java.util.Scanner;
public class Demo04 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个年份:");
int year = sc.nextInt();
if ((year % 4==0 && year % 100 !=0) || year % 400 == 0){
System.out.println(year+"是闰年");
}else{
System.out.println(year+"是平年");
}
}
}
(4)输入考试成绩,根据五级打分制显示级别。90以上为A,80以上为B,70以上为C,
package com.qianfeng;
import java.util.Scanner;
/*
* 多重if结构
* */
public class Demo05_if_elseif {
public static void main(String[] args) {
//创建Scanner变量
Scanner sc = new Scanner(System.in);
System.out.print("请输入你的考试成绩 :");
int score = sc.nextInt();
//五级打分制判断
if (score >= 90){
System.out.println("A");
}else if(score >= 80){
System.out.println("B");
}else if(score >= 70){
System.out.println("C");
}else if(score >= 60){
System.out.println("D");
}else{
System.out.println("E");
}
}
}
(5)从键盘选择今天的天气情况,有三种 1.太阳天 2.下雨天 3.常温天,根据天气情况决定是否带
伞,以及带什么伞。如果是太阳天则带遮阳伞,如果下雨天则带雨伞,否则不 需要带伞。
package com.qianfeng;
import java.util.Scanner;
/*
* 多重if结构
* */
public class Demo06 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("1.太阳天\t2.下雨天\t3.正常天");
System.out.print("请选择今天的天气情况:");
int choose = sc.nextInt();
//判断天气情况,根据选择的不同,输出不同语句
if(choose == 1){
System.out.println("今天是太阳天,请带好遮阳伞");
}else if(choose == 2){
System.out.println("今天是下雨天,请带好雨伞");
}else if(choose == 3){
System.out.println("今天天气正常,可以不用带伞");
}else{
System.out.println("您的输入有误,请重新输入");
}
}
}
(6)从键盘输入银行的缩写,根据缩写显示银行全称。
中国银行:PBC
工商银行:ICBC
建设银行:CCB
package com.qianfeng;
import java.util.Scanner;
/*
* switch结构
* 1.如果不需要实现穿透效果,每个case执行完逻辑语句后一定要加break关键字
* 2.case和default没有先后顺序要求
* */
public class Demo11 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("请输入银行缩写:");
String str = sc.next();
switch (str){
case "PBC":
System.out.println("中国银行");
break;
case "ICBC":
System.out.println("工商银行");
break;
case "CCB":
System.out.println("建设银行");
break;
default:
System.out.println("输入有误");
break;
}
}
}