概述
流程控制语句
顺序结构 : 从上到下,从左到右–>默认
选择结构 : 满足条件执行对应的代码
循环结构 : 让一些代码重复不停的执行多次
选择结构
if 区间判断|定值判断
switch 定值判断
能用switch的都能if,能用if不一定能够使用switch
if
单选择|单分支:
if(条件表达式){
满足条件执行的代码段;
}
条件表达式 : 必须为一个值为boolean的表达式
执行流程:
1.计算条件表达式
2.如果结果为true,执行{}中的语句体
3.如果结果为false,就直接跳过if结构
双选择|双分支:
if(条件表达式){
满足条件执行的代码段;
}else{
不满足条件执行的代码段;
}
注意: 双选择一定能够执行语句体|一定能够得到结果
多选择|多分支:
if(条件表达式1){
满足条件表达式1执行的语句体1;
}else if(条件表达式2){
满足条件表达式2执行的语句体2;
}else if(条件表达式3){
满足条件表达式3执行的语句体3;
}.....
else{ -->接盘侠
如果以上都不满足执行得到语句体n;
}
注意: 当{}中的语句体只有一句,前后的{}可以省略
public static void main(String[] args){
//if单选择
int i = -1;
System.out.println("if开始了");
if(i==0){
System.out.println("i=0");
}
System.out.println("if结束了");
//双选择
if(i>0){
System.out.println("i>0");
}else{
System.out.println("i<=0");
}
//多选择
if(i==0)
System.out.println("i=0");
else if(i<0)
System.out.println("i<0");
else{
System.out.println("i>0");
System.out.println("测试是否能够被if语句体结构控制");
}
}
Switch
switch(表达式){
case 值1:
语句体1;
break;
case 值2:
语句体2;
break;
....
default:
语句体n;
break;
}
表达式 : 一般为一个变量,可以为一个表达式,常量都可以
结果数据类型要求: byte,short,int,char,枚举类型(jdk5),String字符串(jdk7)
case : 后面接一个定值,拿到表达式的结果与case后面的定值进行判断是否相等,相等执行对应的语句体,不相等,继续向下判断,从上到下依次判断。
break : 终止当前的switch语句
如果没有break会发生case穿透 : 从当前满足条件的语句体开始执行,一直向下 穿透,无论下面的case是否满足条件都不再判断,直接执行语句体,直到遇到下一个break或者switch语句的结束而结束
default : 与else相同
以上的case都不满足,name就执行default中的内容
位置可以在switch语句中的任意位置
一般定义在switch语句的最后,如果切换位置,注意break定义
一对{}中的内容就要缩进一个tab键
switch(flag){ //case穿透
case "红灯":
System.out.println("红灯停");
case "绿灯":
System.out.println("绿灯行");
case "黄灯":
System.out.println("黄灯等一等");
break;
}
boolean flag2 = false;
//把boolean类型变量转为int类型进行判定
int i ;
if(flag2){
i = 1; //true
}else{
i = 0; //false
}
i = falg2 ? 1 : 0;
//如何能够通过switch语句对flag2进行值的判定
switch(i){
case 1:
System.out.println("true");
break;
case 0:
System.out.println("false");
break;
}
//把boolean变量转为字符串 进行判定
switch(flag2+""){
case "true":
System.out.println("true");
break;
case "false":
System.out.println("false");
break;
}
循环结构
让一些代码块重复执行多次
for循环 次数循环
while循环 条件循环
do…while循环
都可以互相转换
for
for(条件初始化;条件判断;条件变化 ){
重复执行的语句体;
}
条件初始化 : 声明一个变量i并且第一次赋值 -->i条件
条件判断 : 对变量的i判断
决定循环是否结束
条件变化|迭代因子 : 变量i自身值的改变
执行顺序:
1.条件初始化 i
2.条件判断,满足执行语句体,不满足条件,结束循环
3.条件变化
从第二次循环开始,重复执行2,3步骤
注意:
for循环的变量条件i只属于当前 for循环,只能在循环中使用
for可以通过条件的变化控制循环的次数,循环体中可以使用条件的值,条件变量可以按照想要的逻辑进行变化,实现需求
考虑: 是否存在一些代码重复执行,如果是,规律可循,可以选择使用循环结构
如果循环体语句只有一句,前后的{}可以省略
public static void main(String[] args){
System.out.println("明天的你,会感谢今天努力的自己!!!!");
//通过循环,输出10次
for(int i=100;i<=200;i++)
//再循环的循环体中可以使用循环的条件i
System.out.println("明天的你,会感谢今天努力的自己!!!!"+i);
//System.out.println(i); 错误: 找不到符号
//计算-~10之间的整数和
int sum = 0; //记录和
for(int i=1;i<=10;i++){
//System.out.println(i);
sum+=i;//sum = sum+i;
}
System.out.println(sum);
}
while循环
格式:
```条件初始化;
while(条件判断){
循环体;
条件变化;
}
```
执行流程:
1.条件初始化
2.条件判断
3.满足条件执行循环体语句,不满足条件,直接结束循环
for循环和while循环的区别:
for循环适用于: 确定循环次数,确定条件变量变化的区间,确定变化的规律;
while循环适用于: 在循环开始之前已经存在了判断条件变量,条件的变化不需要自己控制,不确定循环次数;
public class Class007_While {
public static void main(String[] args) {
//输出1~10之间的整数
for(int i=1;i<=10;i++){
System.out.println(i);
}
//for循环的条件i属于当前for循环
//条件初始化
int i = 1;
while(i<=10){ //条件判断
//循环体语句
System.out.println(i);
//条件变化
i++;
}
System.out.println(i);
}
}
do…while循环
格式:
do{
循环体;
}while(条件判断);
do..while先执行后判断
do…while循环和while循环的区别:
do…while无论是否满足条件,都至少执行一次。
int sum = 0 ;
int i = 1;
while(i<=10){
sum+=i;
i++; //条件变化
}
System.out.println(sum);
System.out.println(i);
sum = 0;
i = 0;
do{
sum+=i;
i++; //条件变化
}while(i<=10);
System.out.println(sum);
System.out.println(i);
死循环
定义
无法通过自身条件决定循环的结束,会无限循环执行下去,所以我们在使用循环的时候,应该避免死循环的出现。
大部分死循环,编译工具都可以识别到,但是在逻辑实现过程中的死循环是识别不到的,比如:
int i=1;
while(i<=10){
System.out.println(i);
}
break 与 continue 关键字的区别:
break:
含义: 打破,终止,停止,结束,作用是终止该循环
应用场景: switch或者for循环结束的时候使用;
continue:
作用: 结束当前本次循环 ,直接进入到下一次循环
应用场景: 和break一样都是用在循环中
循环嵌套
定义:
循环中定义循环
for(条件初始化;条件判断;条件变化){
循环体语句;
for(条件初始化;条件判断;条件变化){
循环体语句;
}
循环体语句;
}
外层循环执行一次,内层循环执行一轮(从开始到结束)
//打印一个5*5的正方形:
public static void main(String[] args) {
/*
* * * * *
* * * * *
* * * * *
* * * * *
* * * * *
*/
//外层循环变量i控制行 内层循环变量j控制列
for(int i=1;i<=5;i++){
//内层 循环用来输出打印每一行中的所有列
for(int j=1;j<=5;j++){
System.out.print("* ");
}
//换行
System.out.println();
}
总结:
内层控制列数,外层控制行数,只要总行数和总列数不变,循环内的数字就不变,打印什么图形只需要加判断条件即可。
//打印空心直角三角形:
/*
*
* *
* *
* *
* * * * *
*/
for(int i=1;i<=5;i++){
for(int j=1;j<=i;j++){
if(i==5||j==1||j==i){
System.out.print("* ");
}else{
System.out.print(" ");
}
}
System.out.println();
}
循环嵌套下的break与continue(加标签):
多层循环嵌套下,默认针对内层循环
其他情况可以选择使用【带标签的break|continue】:
格式:
在循环开始位置定义标签 标签名:
使用break|continue的时候,指定针对哪一层循环进行操作 break 标签名;
public static void main(String[] args) {
//行
one:
for(int i=1;i<=5;i++){
//列
two:
for(int j=10;j<=15;j++){
if(j==13){
break one; //使用标签判断结束哪层循环
}
System.out.print(i+">"+j+"t");
}
System.out.println();
}
}
最后
以上就是紧张猫咪为你收集整理的Java的流程控制语句:选择结构 if/switch、循环结构 for/while、do...while、循环嵌套的全部内容,希望文章能够帮你解决Java的流程控制语句:选择结构 if/switch、循环结构 for/while、do...while、循环嵌套所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复