我是靠谱客的博主 紧张猫咪,最近开发中收集的这篇文章主要介绍Java的流程控制语句:选择结构 if/switch、循环结构 for/while、do...while、循环嵌套,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

流程控制语句

​ 顺序结构 : 从上到下,从左到右–>默认
​ 选择结构 : 满足条件执行对应的代码
​ 循环结构 : 让一些代码重复不停的执行多次

选择结构

​ 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、循环嵌套所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(43)

评论列表共有 0 条评论

立即
投稿
返回
顶部