Java100天编程指南---第6天:分支结构


目录

一、前言

二、顺序结构

1.定义

         2.例题

三、if格式1

1.定义

2.例题

四、 if格式2

1.定义

 2.例题 1

 3.例题 2

 4.例题 3

五、if格式3

1.定义

 2.例题 

六、 switch语句

 1.定义

 2. 例题1

 3. 例题2

 4. 例题3

5.注意事项​​​​​​


一、前言

  • 本章主要学习Java流程控制语句里面的基本的顺序结构和分支结构
  • 学习目标:熟练应用三种if分支格式和switch结构

二、顺序结构

1.定义

  • 顺序结构是程序中最简单的基本流程控制,按照代码先后顺序依次执行。

2.例题

  •  如上图一个基本的顺序结构执行语句,输出顺序应该是:开始->A->B->C->结束

编码实现

public static void main(String[] args)
	{
		System.out.println("开始");
		System.out.println("A");
		System.out.println("B");
		System.out.println("C");
		System.out.println("结束");
	}

输出结果

开始
A
B
C
结束

三、if格式1

1.定义

 

if(条件表达式) 
{
    语句体; 
}
  • 首先计算条件表达式的值
  • 为true执行语句,false不执行语句
  • 继续执行后续的语句内容

2.例题

  • 给定数据a、b、c的值,判断a和b、a和c是否相同?

编码实现: 

       //定义三个变量
		int a=10;
		int b=20;
		int c=10;
		if(a==b)
		{
			System.out.println("a等于b");
		}
		if(a==c)
		{
			System.out.println("a等于c");
		}
		System.out.println("结束");

输出结果

a等于c
结束

四、 if格式2

1.定义

if (条件) 
{
    语句体1;
} 
else 
{
    语句体2;
}
...
  • 首先,先判断if条件的值
  • 如果为true,执行语句体1
  • 否则为false,执行语句2

 2.例题 1

  • 给定数据a、b的值,判断a是否大于b?

编码实现: 

       //定义两个变量
		int a=10;
		int b=20;
		if(a>b)
		{
			System.out.println("a大于b");
		}
		else 
		{
			System.out.println("a不大于b");
		}
		System.out.println("结束");

输出结果

a不大于b
结束

 3.例题 2

  • 任意给定一个数字,判断奇偶数?

编码实现: 

        Scanner sc=new Scanner(System.in);//从键盘读入数据
		int n=sc.nextInt();
		if(n%2==0)
		{
			System.out.println("数字"+n+"是偶数");
		}
		else 
		{
			System.out.println("数字"+n+"是奇数");
		}

输出结果

10
数字10是偶数
5
数字5是奇数

  4.例题 3

  • 需求: 键盘录入用户密码, 如果密码为 666666, 程序输出密码正确,否则输出密码有误

编码实现: 

        Scanner sc=new Scanner(System.in);//从键盘读入数据
		int n=sc.nextInt();
		if(n==666666)
		{
			System.out.println("密码正确,欢迎登录");
		}
		else 
		{
			System.out.println("密码错误,请重新输入");
		}

输出结果

111111
密码错误,请重新输入
666666
密码正确,欢迎登录

五、if格式3

1.定义

if (条件1) 
{
    语句体1;
} 
else if (条件2) 
{
    语句体2;
} 
else if (条件3) 
{
    语句体4;
} 
. . .
else 
{
    语句体n+1;
}
  • 先判断条件1的值,如果为true则执行语句体1,分支结束
  • 如果为false则判断条件2的值
  • 如果值为 true 就执行语句体 2 ,分支结束
  • 如果为false则判断条件3的值
  • ........
  • 如果没有任何条件为 true ,就执行 else 分支的语句体 n+1

 2.例题 

  • 键盘录入考试成绩,根据成绩所在的区间,程序打印出不同的奖励机制

编码实现: 

        Scanner sc=new Scanner(System.in);//从键盘读入数据
		int score=sc.nextInt();
		if(score<0 || score>100)//分数区间确定,防止出错
		{
			System.out.println("输入的成绩有误,请重新输入");
		}
		else if(score>=95 && score<=100)
		{
			System.out.println("奖励自行车一辆");
		}
		else if(score>=90 && score<=94)
		{
			System.out.println("奖励游乐园游玩");
		}
		else if(score>=80 && score<=89)
		{
			System.out.println("奖励变形金刚一个");
		}
		else 
		{
			System.out.println("奖励胖揍一顿");
		}

输出结果

101
输入的成绩有误,请重新输入
98
奖励自行车一辆
92
奖励游乐园游玩
88
奖励变形金刚一个
66
奖励胖揍一顿

六、 switch语句

1.定义

switch(表达式)
{
    case 值1:
        执行代码...;
    break;
    case 值2:
        执行代码...;
    break;
    … 
    case 值n-1:
        执行代码...;
    break;
    default:
        执行代码n;
}
  • 先执行表达式的值,执行后的结果与switch值匹配
  •  匹配 case 的值为 true 就开始执行 遇到break跳出switch分支
  • 如果 case 后的值都不匹配则执行 default 代码

2. 例题1

  • 输入一个星期数(1~7),输出对应的星期?

编码实现: 

        Scanner sc=new Scanner(System.in);//从键盘读入数据
		int week=sc.nextInt();
		switch (week) 
		{
			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("输入的数据有误");
				break;
		}

输出结果

5
星期五
10
输入的数据有误

 3. 例题2

  • 一年有12个月,分属于春夏秋冬,键盘输入一个月份,用程序实现该月份属于哪一个季节?

编码实现: 

        Scanner sc=new Scanner(System.in);//从键盘读入数据
		int month=sc.nextInt();
		switch (month) 
		{
			case 1:
			case 2:
			case 12:
				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;
			default:
				System.out.println("输入的月份有误");
				break;
		}

输出结果

5
春季
8
夏季
10
秋季
12
冬季
13
输入的月份有误

 4. 例题3

  • 下面这段代码输入1,输出什么?输入2呢?
        Scanner sc=new Scanner(System.in);//从键盘读入数据
		int n=sc.nextInt();
		switch (n) 
		{
		    case 1:
		    	System.out.println("输出1");
		    case 2:
		    	System.out.println("输出2");
		    	break;
		    case 3:
		    	System.out.println("输出3");
		    	break;
			default:
				System.out.println("输入的月份有误");
				break;
		}

 输出结果

1
输出1
输出2
2
输出2

5.注意事项​​​​​​

  • 表达式类型只能是byte、short、int、char、String、 不支持double、float、long
  • case给出的值不允许重复,不能是变量。
  • break记得写,不然会出现例题3的结果

猜你喜欢

转载自blog.csdn.net/qq_53673551/article/details/124404571