从零开始学java--day03--流程控制语句(一)

day03–流程控制语句(一)


提示:以下是本篇文章正文内容,下面案例可供参考

一、流程控制

1.顺序结构

(1)所有编程语言最核心,最基础的结构是"顺序结构",代码从上至下依次执行
(2)在顺序结构中包含:分支结构、循环结构、调用结构
(3)分支结构和循环结构统称为"流程控制语句"

流程控制语句分类:
	分支结构
		判断语句:if语句
		选择语句:switch语句
	循环结构
		for语句
		while语句
		do...while语句

2. if 语句

(1)if语句的第一种格式:

	if (条件判断语句) {
		语句体
	}

执行流程
1.先确认条件判断语句的结果是true还是false;
2.如果是true,执行语句体,if语句结束;
如果是false,if语句结束;

代码如下(示例):

//需求:判断指定整数是否为偶数
		System.out.println("开始");

		//声明并初始化一个整数
		int num = 212;

		//判断num是否为偶数
		if (num % 2 == 0) {
			System.out.println(num + "是偶数");
		}

		System.out.println("结束");

(2)if语句的第二种格式:

if (条件判断语句) {
		语句体1;
	} else {
		语句体2;
	}

执行流程:
1.先确认条件判断语句的结果是true还是false
2.如果是true,执行语句体1,if语句结束;
如果是false,执行语句体2,if语句结束;

注意事项:
三元运算符和if语句的第二种格式比较相像,在实际开发中更推荐使用if语句的第二种格式;
原因:三元运算符具有一定的局限性,里面只能存放结果值,无法编写语句,只有在if语句的第二种格式比较简单的时候,才编写三元运算符进行简化

代码如下(示例):

需求:判断一个整数的奇偶性

		//声明并初始化一个整数
		int num = 215;

		//判断num的奇偶性
		if (num % 2 == 0) {
			System.out.println(num + "是偶数");
		} else {
			System.out.println(num + "是奇数");
		}

(3)if语句的第三种格式:

if (条件判断语句1) {
		语句体1
	} else if (条件判断语句2) {
		语句体2
	} 
	......
	else if (条件判断语句n) {
		语句体n
	} else {
		语句体n+1
	}

执行流程:
1.先确认条件判断语句1的结果是true还是false;
2.如果是true,执行语句体1,if语句结束;
如果是false,确认条件判断语句2的结果是true还是false;

3.当所有的条件判断语句都为false时,执行else中的语句体n+1

注意事项:
if语句的第三种格式可以将else语句省略不写,但推荐写上

代码如下(示例):

需求:判断两个整数之间的关系(大于,等于,小于)
//声明并初始化两个整数
		int a = 3;
		int b = 4;

		//进行两个整数关系的判断
		if (a > b) {
			System.out.println("a > b");
		} else if (a < b) {
			System.out.println("a < b");
		} else {
			System.out.println("a = b");

3.switch语句:

switch语句的格式:
	switch (数据值) {
		case 数据值1:
			语句体1
			break;
		case 数据值2:
			语句体2
			break;
		......
		case 数据值n:
			语句体n
			break;
		default:
			语句体n+1
			break
	}

执行流程:
1.先确认switch()中的数据值是多少;
2.将数据值1和数据值进行匹配,看是否匹配成功;
3.如果匹配成功,执行语句体1,执行break关键字,switch语句结束;
如果匹配失败,将数据值2和数据值进行匹配,看是否匹配成功;

4.当所有case后的数据值都和数据值匹配失败,执行default中的语句体n+1,执行break关键字,switch语句结束;

代码如下(示例):

//声明并初始化段位的变量
		int level = 2;

		//进行数据的选择匹配
		switch (level) {
			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;
			default:
				System.out.println("嘴强王者无疑了");
				break;

switch语句的注意事项:
1.switch()中数据值的数据类型:
基本类型只支持int类型,考虑到有三种类型可以自动提升成int,衍生出四种支持类型,分别是byte,short,char,int
引用类型:
在JDK1.4(包含)及其以前,不支持引用类型
在JDK5.0(包含)及其以后,支持枚举类型Enum
在JDK7.0(包含)及其以后,支持字符串类型String
2.swtich语句中的default和if语句第三种格式中的else一样,都可以省略不写,推荐写上
3.switch语句中的case和default顺序可以颠倒,不影响执行流程,推荐将default写在所有case的下面
4.switch语句中break关键字可以省略不写,但是会出现case穿透效果

4.for语句

for语句的格式:
	for (初始化语句;循环条件语句;迭代语句) {
		循环体语句
	}

初始化语句:声明并初始化记录循环次数(范围)的"循环变量"
循环条件语句:判断循环变量是否满足循环条件
迭代语句:循环变量的后续操作
循环体语句:重复执行多次的代码

执行流程:
1.先执行初始化语句;
2.确认循环条件语句的结果是true还是false;
3.如果是true,执行循环体语句,继续执行第4步;
如果是false,for语句结束;
4.执行迭代语句;
5.跳回第2步,继续执行

//需求:打印10遍HelloWorld
	for (int i = 1; i <= 10 ; i++) {
		System.out.println("HelloWorld");

练习

/*练习:打印所有的水仙花数并输出共有多少个
  	所谓的水仙花数是指一个三位数,其各位数字的立方和等于该数本身。
 		举例:153就是一个水仙花数。
 		153 = 1*1*1 + 5*5*5 + 3*3*3
*/
		//声明并初始化记录水仙花数个数的计数器变量
		int count = 0;
		//遍历所有的三位数
		for (int i = 100; i < 1000 ; i++) {
			//获取每个三位数字个十百上的数字
			int ge = i % 10;
			int shi = i / 10 % 10;
			int bai = i / 100 % 10;

			//进行数据的筛选
			if (i == bai*bai*bai + shi*shi*shi + ge*ge*ge) {
				//计数器累加
				count++;
				System.out.println(i);
			}
		}
		//输出计数器变量
		System.out.println("count = " + count);

5.while语句

while语句的格式:
	while (循环条件语句) {
		循环体语句	
	}

执行流程:
1.先确认循环条件语句的结果是true还是false;
2.如果是true,执行循环体语句;
如果是false,while语句结束;
3.跳回第1步,继续执行

为了和for循环语句进行相互转换,衍生出while循环语句的扩展格式

初始化语句:
	while (循环条件语句) {
		循环体语句
		迭代语句
	}
//需求:打印10遍HelloWorld

		int i = 1;
		while (i <= 10) {
			System.out.println("HelloWorld");
			i++;
		}

6.dowhile语句

dowhile语句的格式:
	do {
		循环体语句
	} while (循环条件语句);

执行流程:
1.先执行循环体语句
2.再确认循环条件语句的结果是true还是false;
3.如果是true,跳回第1步继续执行;
如果是false,dowhile语句结束

为了和for循环语句进行相互转换,衍生出dowhile扩展格式
	初始化语句;
	do {
		循环体语句
		迭代语句
	} while (循环条件语句);
//需求:打印10遍HelloWorld
		int i = 1;

		do {
			System.out.println("HelloWorld");
			i++;
		} while (i <= 10);

补充知识点

三种循环的区别:

从扩展格式角度分析:
1.循环变量的作用域不同:
for语句结束,变量在内存中释放
while和dowhile语句在语句结束后依然可以使用
2.循环条件语句的判断次数不同:
同需求下,dowhile语句循环条件语句判断次数比while和for少一次

从标准格式角度分析:
1.如果需求有明显的循环次数或者范围,选择for语句
2.如果需求没有明显的循环次数或者范围,选择while语句
3.在实际开发中,不会使用dowhile语句

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Jwwy*

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值