2022/06/2 day03:流程控制语句

1. 流程控制

1.1 概述

程序的流程对运行结果有直接的影响,所以我们必须清楚每条语句的执行流程。

流程: 在一个程序执行的过程中,各条语句的执行顺序。

流程控制:通过控制语句的执行顺序来实现我们要完成的功能。

程序流程图:
又称程序框图,是用统一规定的标准符号描述程序运行具体步骤的图形表示。

程序框图的设计是在处理流程图的基础上,通过对输入输出数据和处理过程的详细分析,将计算机的主要运行步骤和内容标识出来。

流程图标准符号:
在这里插入图片描述

1.2 顺序结构

执行流程图如下:
在这里插入图片描述

例子:

public class Demo01Sequence{ //Sequence 顺序的意思
public static void main(String[] args){
		System.out.println("今天天气不错!");
		System.out.println("挺风和日丽的!");
		System.out.println("我们下午没课!");
		System.out.println("这的确挺爽的!");
	
}}

2. 判断语句

2.1 单if语句

执行流程图如下:
在这里插入图片描述

例子:

public class Demo02SIf{ 
public static void main(String[] args){
		System.out.println("今天天气不错!正在压马路——突然看到一个快乐的地方:网吧!");
		int age = 160;
		if(age >= 18){
			System.out.println("进入网吧,开始嗨!");
			System.out.println("遇到一群猪队友,开始骂街!");
			System.out.println("感觉不爽,结账走人!");
		}
			System.out.println("回家吃饭!");
}}

2.2 标准if-else语句

执行流程图如下:
在这里插入图片描述

例子:

public class Demo03SIfElse{ 
public static void main(String[] args){
		int num = 30;
		
		if(num % 2 == 0){//如果除以2能够余数为0,说明是偶数。
			
			System.out.println("偶数");
			
		}
		else{
			
			System.out.println("奇数");
			
		}
}}

2.3 扩展if-else语句

执行流程图如下:
在这里插入图片描述

例子:

// x和y的关系满足如下:
// x>=3 y = 2x + 1;
//‐1<=x<3 y = 2x; 
// x<=‐1 y = 2x – 1;
public class Demo04SIfElseExt{ //ext 扩展的意思
public static void main(String[] args){
	int x = -10;
	int y = 2;	//不赋值的内容无法使用
	
	if(x >= 3){	
		
		y = 2*x + 1; //程序中2x是错的,应该是2*x。 
	}
	else if(-1 <= x && x <3){	
		
		y = 2*x;
	}else{
		
		y = 2*x - 1;
	}
	System.out.println(x);
	System.out.println("结果是:" + y); //注意这个写法
}}

语句练习:

/*
指定考试成绩,判断学生等级 
90-100 优秀 
80-89 好 
70-79 良 
60-69 及格 
60以下 不及格
*/
public class Demo05SIfElsePractise{ 
public static void main(String[] args){
	
		int score = 69;
		if(score < 100 && score >= 90){
			
			System.out.println("分数:" + score + "   优秀");
		}else if(score < 90 && score >= 80){
			
			System.out.println("分数:" + score + "   好");	
		}else if(score < 80 && score >= 70){
			
			System.out.println("分数:" + score + "   良");	
		}else if(score < 70 && score >=60){
			
			System.out.println("分数:" + score + "   及格");	
		}else{ //注意为什么会用嵌套
			
			if(score > 100 || score < 0){
				
			System.out.println("分数:" + score + "   错误");
			}
			else{
				
				System.out.println("分数:" + score + "   不及格");	
			}
		}
}}

2.4 if语句和三元运算符的互换

标准if-else语句,二者选其一;三元运算符也可以做到。
例子:

//题目:使用三元运算符和标准if-else语句分别实现:取两个数字中的最大值
public class Demo06Max{ 
public static void main(String[] args){ 

		int x = 100;
		int y = 20;
		int z = x >= y ? x : y;
		System.out.println("三元运算符得最大值:" + z);
		
		System.out.println("                 ");
		
		if(x >= y){
			
			System.out.println("标准if-else语句得最大值:" + x);
		}else{
			System.out.println("标准if-else语句得最大值:" + y);
		}
}
}

3. 选择语句

3.1 选择语句-Switch

执行流程图如下:
在这里插入图片描述

例子:

public class Demo07Switch{ 
public static void main(String[] args){
	
		int num = 70; //被检测量
		switch(num){
			
			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;	//强烈建议不省略default的break。			
		}
}}

3.2 注意事项

switch语句使用的注意事项:

  1. 多个case后面的数值不可以重复。
  2. switch后面小括号当中的【被检测值】只能是下列数据类型:
    4个基本数据类型: byte/short/char/int
    2个引用数据类型: String字符串、enum枚举
  3. Switch语句格式可以很灵活:前后顺序可以颠倒,而且break语句还可以省略;匹配哪一个case就从哪一个位置向下执行,直到遇到break或者整体结束为止。
    例子:
public class Demo08SwitchNotice{ 
public static void main(String[] args){
	
		int num = 3;
		switch(num){
			
			case 3:System.out.println("你好");  //没有break,将会向下穿透,继续执行后面的代码。
			case 1:System.out.println("我好");break;
			default:System.out.println("他好,我也好");break;//default不一定是最后,推荐不省略break。在最后才有意义。
			case 2:System.out.println("大家好");break;
		}
	
}}

4. 循环语句

4.1 循环概述

循环语句:在满足循环条件的情况下,反复执行某一段代码,这段被重复执行的代码被称为循环体语句。

当反复执行这个循环体时,需要在合适的时候把循环判断条件修改为false,从而结束循环,否则循环将一直执行下去,形成死循环。

4.2 for循环

执行流程图如下:
在这里插入图片描述

循环结构的基本组成部分,一般可以分成四部分:
1. 初始化语句:在循环开始最初执行,而且只做唯一一次。
2. 条件判断:如果成立,则循环继续;如果不成立,则循环退出。
3. 循环体:重复要做的事情内容,若干行语句。
4. 步进表达式语句:每次循环之后都要进行的扫尾工作,每次循环体结束之后都要执行一次。

例子:

public class Demo09For{ 
public static void main(String[] args){
		
		System.out.println("我错啦!");
		System.out.println("我错啦!");
		System.out.println("我错啦!");
		
		for(int index = 0;index < 100; index++){ //index 指数
			
			System.out.println("第" + (index+1) + "次:我错啦!");
		}
	
}}

4.3 while循环

while循环有一个标准格式,还有一个扩展格式。

标准格式:

            while(条件判断){
	
                        循环体
                }

扩展格式:

                初始化语句;
            while(条件判断){
	
                   循环体;
               步进表达式语句;
        }

执行流程图如下:
在这里插入图片描述

在这里插入图片描述

例子:

        public class Demo10While{ 
        public static void main(String[] args){
                	int i = 0;
	        while(i<100){
		
		        System.out.println("第" + (i+1) + "次:我错啦!");
		           i++;
	              }
	
}}

4.4 do-while循环

do-while循环有两种格式:
标准格式:

do{
	
循环体
}while(条件判断);

扩展格式:

初始化语句;
do{
	
循环体语句;
步进表达式语句;
}while(控制语句);

扩展格式执行流程图如下:
在这里插入图片描述

4.5 三种循环的区别

三种循环的区别:
1. 如果条件判断从没满足过,那么for循环和while循环将会执行0次,但是do-while循环至少会执行1次。
2. for循环的变量在括号当中定义,只有循环内部才可以使用。while循环和do-while循环初始化语句本来就在外面,所以循环结束之后还能使用。

例子:

public class Demo13LoopDifference{ 
public static void main(String[] args){
	for(int i = 0;i < 0; i++){
		System.out.println("Hello! 小张");
		
	}
	//System.out.println(i);//错误写法,这时i还没定义
	int i = 0;
	do{
		System.out.println("Hello! 小王");
		i++;
	}while(i < 0);
	System.out.println(i);
	
}}

4.6 循环控制(跳出)语句

break关键字:
break关键字的用法有常见的两种:
1. 可以用在switch语句当中,一旦执行,整个switch语句立刻结束。
2. 还可以用在循环语句当中,一旦执行,整个循环立刻结束,打断循环。

关于循环的选择,有一个小建议:
凡是次数确定的场景多用for循环,否者用while循环;do-while循环不常用。

例子:

public class Demo14break{ 
public static void main(String[] args){
	for(int i = 1;i < 10;i++){
		//如果从第四次开始,后续不要了,打断循环
		System.out.println("Hello! 小张" + i);
		if(i == 4){
			break;
		}
	}
	
}}

continue关键字:
另一种循环控制语句是continue关键字:
一旦执行,立刻跳过当次循环剩余内容(一般放在循环体前),马上开始下一个循环。
例子:

public class Demo15Continue{ 
public static void main(String[] args){
	for(int i = 1;i <= 10;i++){
		
		if(i == 4){
			continue;
		}
		System.out.println(i + "楼到了");
	}
}}

5. 扩展知识点

5.1 死循环

死循环:永远停不下来的循环就是死循环。

一般出现有两种情况:

  1. 存心死循环。
  2. 无心死循环。

死循环的标准格式:

while(true){
		循环体;
	}

例子:

public class Demo16DeadLoop{ //DeadLoop 死循环
public static void main(String[] args){
	
	for(int i = 1;i <= 10;i++ ){ //i++忘写了。
		
		System.out.println(i + "楼到了");
	}
	while(true){
		System.out.println("I Love You!");
	}
	//System.out.println("!!!!!!");//无法访问的语句
}}

5.2 循环嵌套

嵌套循环:
是指一个循环的循环体是另一个循环。比如for循环里面还有一个for循环,就是嵌套循环。总共的循环次数=外循环次数 * 内循环次数。

例子:

public class Demo17LoopHourAndMinute{ 
public static void main(String[] args){
		for(int hour = 0; hour < 24;hour++){           //外层控制小时
			for(int minute = 0; minute < 60;minute++){ //内层控制分钟
				
				for(int second = 0; second < 60;second++){
					
					System.out.println(hour + ":" + minute +":" + second);
				}	
			}
		}
}}

练习:
题目:求出1–100之间的偶数和。求出1–100之间的和以及奇数和。

思路:

  1. 既然范围已经确定是1–100,那么我就从1、2、3…一直到100一个一个进行检查。
  2. 总共100个数字,并非所有数字都能使用,必须是偶数才行,判断(if语句)偶数: num % 2 == 0.
  3. 需要一个变量,用来进行累加操作。也就是一个存钱罐。
public class Demo12HundredSun{ 
public static void main(String[] args){
	int sum1 = 0;
	int sum2 = 0;
	int sum3 = 0;
	
	for(int i1 = 1;i1 <= 100;i1++){
		
		if(i1 % 2 == 0){
			sum1 += i1;
		}
		
	}
	
	int i2 = 1;
	while(i2 <= 100){
		if(i2 % 2 != 0){
			sum2 += i2;
		}
		i2++;
	}
	
	int i3 = 0;
	do{
		sum3 += i3;
		i3++;
	}while(i3 <= 100);
	
	System.out.println("0--100偶数和是" + sum1);
	System.out.println("0--100奇数和是" + sum2);
	System.out.println("0--100和是" + sum3);
}}
                                                                                 ——此文档为学习笔记!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值