Hi i,m JinXiang
⭐ 前言 ⭐
本篇文章主要介绍Java控制流程语句、循环、跳转控制语句使用以及部分理论知识
🍉欢迎点赞 👍 收藏 ⭐留言评论 📝私信必回哟😁
🍉博主收将持续更新学习记录获,友友们有任何问题可以在评论区留言
目录
1、控制流程语句
1.1、顺序控制
1.1.1、顺序控制举例和注意事项
1.1.2、顺序控制执行顺序
1.2、分支控制
分支控制if - else介绍
1.2.1、单分支(if)
1.2.2、双分支(if - else)
1.2.3、多分支(if - else...if - else)
1.2.4、嵌套分支
1.3、Switch分支结构
2、循环
2.1、for循环控制(!!!)
2.2、While循环控制
2.3、do..while循环控制
2.4、多重循环控制(难点!重点!)
3、跳转语句
3.1、跳转控制语句-break
3.2、跳转控制语句-continue
3.3、跳转控制语句-return
1、控制流程语句
在程序中,程序运行的流程控制决定程序是如何执行的,是我们必须掌握的,主要
有三大流程控制语句。
1.1、顺序控制
程序从上到下逐行地执行,中间没有如何的判断和跳转。
1.1.1、顺序控制举例和注意事项
- Java中定义变量时采用合法的前向引用
- 如public class Test{ int num1 = 12; int num2 = num1 + 2; }
1.1.2、顺序控制执行顺序
1.2、分支控制
分支控制if - else介绍
让程序有选择的执行,分支控制有三种
1.2.1、单分支(if)
单分支基本语法:
if(条件表达式){
执行代码块;(可以有多条语句)
}
单分支说明
当条件表达式为ture时,就会执行{ }的代码。如果为false ,就不执行,特别说明,如果{} 中只有一条语句,则可以不用{},建议写上
单分支(if)执行流程
1.2.2、双分支(if - else)
双分支基本语法:
if(条件表达式){
执行代码块1;
}
else{
执行代码块2;
}
双分支说明
当条件表达式成立,即执行代码块1,否则执行代码块2
如果执行代码块只有一条语句,则{}可以省略,否则,不能省略
双分支(if - else)执行流程
1.2.3、多分支(if - else...if - else)
多分支基本语法
if(条件表达式1){
执行代码块1;
}
else if (条件表达式2){
执行代码块2;
}
......
else{
执行代码块n;
}
多分支特别说明
- 1、多分支可以没有else,如果所有的条件表达式都不成立,则一个执行入口都没有
- 2、如果有else , 如果所有的条件表达式都不成立,则默认执行else代码块
多分支执行流程(重!!)
- 1、当条件表达式1成立时,即执行代码块1,
- 2、如果表达式1不成立,才去判断表达式2是否成立,
- 3、如果表达式2成立,就执行代码块2
- 4、以此类推,如果所有的表达式都不成立
- 5、则执行else的代码块,注意,只能有一个执行入口。
1.2.4、嵌套分支
嵌套分支基本介绍:
在一个分支结构中又完整的嵌套了另一个完整的分支结构,里面的分支的结构称为内层分支外面的分支结构称为外层分支。
嵌套分支基本语法:
if(){
if(){
//if-else...
}else{
//if-else
}
}
1.3、Switch分支结构
Switch分支结构基本语法
switch(表达式){
case常量1: //当...
语句块1;
break;
case常量2;
语句块2;
break;...
case常量n;
语句块n;
break;
default:
default语句块:
break;}
Switch分支结构使用细节
- 1. switch关键字,表示swtich分支
- 2.表达式对应一个值
- 3. case常量1 :当表达式的值等于常量1,就执行语句块1
- 4. break :表示退出swtich
- 5.如果和case常量1匹配,就执行语块1如果没有匹配,就继续匹配case常量2
- 6.如果一个都没有匹配上,执行default
Switch执行流程图
Switch注意事项和细节讨论
- 1.表达式数据类型,应和case后的常量类型-致,或者是可以自动转成可以相互比较的
类型,比如输入的是字符,而常量是int - 2. switch(表达式)中表达式的返回值必须是: (byte,short,int,char.enum[枚举],String)
- 3. case子句中的值必须是常量,而不能是变量
- 4. default子包是可选的, 当没有匹配的case时,执行default
- 5. break语用来在执行完 个case分支后使程序跳出switch语句块如果没有写break,程序会顺序执行到switch结尾,除非遇到break;
Switch和if的比较
- 1、如果判断的具体数值不多,而且符合byte、short、int、char,enum[枚举],String这6种类型。虽然两个语句都可以使用,建议使用swtich语句。
- 2、其他情况:对区间判断,对结果为boolean类型判断,使用if,if的使用范围更广
2、循环
2.1、for循环控制(!!!)
基本介绍
听其名而知其意,就是让我们的代码可以进行循环的执行操作
基本语法
for(循环变量初始化;循环条件;循环变量迭代){
循环操作(可以多条语句);
}
for循环使用细节
- 1.for关键字,表示循环控制
- 2.for有四要素:
- (1)循环变量初始化
- (2)循环条件
- (3)循环操作
- (4)循环变量迭代
- 3.循环操作,这里可以有多条语句,也就是我们要循环执行的代码
- 4.如果循环操作(语句)只有一条语句,可以省略{},建议不要省略
for循环执行流程分析
for循环内存分析图
使用for循环的注意事项和细节说明
- 1、循环条件是返回一个布尔值的表达式
- 2、for(;循环判断条件;)中的初始化和变量迭代可以写到其它地方,但是两边的分号不能省略。
- 3、循环初始值可以有多条初始化语句,但要求类型一样,并且中间用逗号隔开,循环变量迭代也可以有多条变量迭代语句,中间用逗号隔开。
- 4、使用内存分析法,老师分析输出下面代码输出什么
2.2、While循环控制
While循环基本语法
循环变量初始化;
while(循环条件){
循环体(语句);
循环变量迭代;
}
while循环说明
- 1、while循环也有四要素
- 2、只是四要是放的位置和for不一样
while循环执行流程分析
while循环代码示例
//输出10句你好,inti=1;//循环变量初始化
while(i<=10){//循环条件
System.out.println("你好"+i);//执行语句
i++;//循环变量迭代
}
System.out.println("退出while,继续.."+i);//11
while循环代码执行内存分析图
while循环使用注意事项和细节说明
- 1、循环条件是返回一个布尔值的表达式
- 2、while循环是先判断再执行语句
2.3、do..while循环控制
do...while循环基本语法
循环变量初始化;
do{
循环体(语句);
循环变量迭代;
}while(循环条件);
do...while循环说明
- 1、dowhile是关键字
- 2、也有循环四要素,只是位置不一样
- 3、先执行,再判断,也就是说,一定会至少执行一次
- 4、最后有一个分号;
- 5、while和do..while区别
- while是先判断再循环
- do..while是先循环再判断(无论如何都会先执行一遍)
do...while循环流程图
do..while循环代码执行内存分析图
do..while循环注意事项和细节说明
- 1、循环条件是返回一个布尔值的表达式
- 2、do..while循环是先执行,再判断,因此它至少执行一次
2.4、多重循环控制(难点!重点!)
基础介绍多循环控制
- 1、将一个循环放在另一个循环体内,就形成了嵌套循环。其中,for,while,do…while均可以作为外层循环和内层循环。【建议一般使用两层,最多不要超过3层,否则,代码的可读性很差】
- 2、实质上,嵌套循环就是把内层循环当成外层循环的循环体。当只有内层循环的循环条件为false时,才会完全跳出内层循环,才可结束外层的当次循环,开始下一次的循环
- 3、设外层循环次数为m次,内层为n次,则内层循环体实际上需要执行m*n次。
多重循环执行步骤分析
for(inti=0;i<2;i++){// 先思考for(intj=0;j<3;j++){System.out.println("i="+i+j="+);}}
3、跳转语句
3.1、跳转控制语句-break
基本介绍
基本语法
{
...
break;
}
以while使用break为例,画的示意图
执行示意图
使用break的注意事项和细节说明
- 1. break语句出现在多层嵌套的语句块中时,可以通过标签指明要终正的是哪一层语句块
- 2、标签的基本使用
- (1) break语句可以指定退出哪层
- (2) label1是标签,名字由程序员指定。
- (3) break后指定到哪个label就退出到哪里
- (4)在实际的开发中,老韩尽量不要使用标签.
- (5)如果没有指定break,默认退出最近的循环体
练习题
//思路分析
//1.循环1-100,求和sum
//2.当sum>20时,记录下当前数,然后break
//3.在for循环外部,定义变量n,把当前i赋给n intsum=0;//累积和//注意i的作用范围在for{}
intn=0;for(inti=1;i<=100;i++){sum+=i;//累积if(sum>20){System.out.println("和>20时候当前数i="+i);n=i;break;}
}
System.out.println("当前数="+n);
3.2、跳转控制语句-continue
基本介绍:
- 1、continue语句用于结束本次循环,继续执行下一次循环。
- 2、continue语句出现在多层嵌套的循环语句体中时,可以通过标签指明要跳过的是哪一层循环,这个和前面的标签的使用的规则一样。
基本语法
{
...
continue
...
}
while使用continue为例,画的示意图
实际使用案例说明
3.3、跳转控制语句-return
基本介绍
- 1、return使用在方法,表示跳出所在的方法,
- 2、注意如果return写在main方法,那就表示退出程序
4、本章练习
练习1
题目
某人有100,000元,每经过一 次路口,需要交费,规则如下:
- 1)当现金> 50000时,每次交5%
- 2)当现金< = 50000时,每次交1000
编程计算该人可以经过多少次路口,要求:使用while + break方式完成
步骤
double money = 100000;int count = 0;while (true){if (money > 50000){ //过路口money *= 0.95; //交5%count++;}else if(money >=1000){ //交1000money -= 1000;count++;}else {break;//钱不够}}System.out.println(money+" 可以过 "+count+" 次路口 ");
结果
练习2
题目
判断一个年份是否为闰年
思路分析
(1)能被4整除 但不能被100整除
(2)能被400整除
步骤
int num2 = 2024;if (num2 %4 ==0 && num2%100 !=0 || num2%400 ==0){System.out.println("是闰年");}else{System.out.println("不是闰年");}
结果
练习3
题目
判断-个整数是否是水仙花数,所谓水仙花数是指一个3位数,其各个位上数字立方 //和等于其本身。例如: 153 = 1*1*1 + 3*3*3 + 5*5*5
思路分析
水仙花数是指一个三位整数的个位,十位,百位3个数的立方和等于该数本身。
例如:153 = 111 + 555 +333 是水仙花数。
步骤
int count = 0;for (int i = 100; i <=1000 ; i++) {int a = i/100; //取出百位数int b = i%100/10; //取出十位数int c = i%10; //取出个位数if (i == a*a*a + b*b*b + c*c*c){count++; //符合条件,计数System.out.println(i+"是水仙花数");}}System.out.println("水仙花数一共有"+count+"个");
结果
练习4
题目
输出小写的a-z以及大写的Z-A
步骤
7.输出小写的a-z以及大写的Z-ASystem.out.println("\n-----小写-----");for (char c1 = 'a'; c1 <= 'z' ; c1++) {System.out.print(c1+" ");}System.out.println("\n-----大写-----");for (char c2 = 'A'; c2 <= 'Z' ; c2++) {System.out.print(c2+" ");}
结果
练习5
题目
求出1-1/2+ 1/3-1/4.... 1/100的和
思路分析
1. 1-1/2+1/3-1/4... .1/100 = (1/1)-(1/2)+(1/3)-(1/4).. .1/100
2.从上面的分析我们可以看到
- (1) 、一共有100数,分子为1 ,分母从1-100
- (2)、还发现当分母为奇数时,前面是+ ,当分母是偶数时,前面是 -
- (3)、我们可以使用for +判断即可完成
步骤
double sum = 0; //总和for (int i = 1; i <= 100; i++) {if (i % 2 !=0){ //分母为奇数sum+=1.0/i;}else { //分母为偶数sum -= 1.0/i;}}System.out.println("\n"+sum);
结果
看完点赞~人美心善