循环结构

Java中的循环结构

一、循环的概念

  1. 循环的特点:有规律,并且重复
  2. 循环的概念:循环是通过某个条件的控制,不断的重复某个行为的代码
  3. 循环的组成:
    1. 循环变量的初始化
    2. 循环变量的变化
    3. 循环条件
    4. 循环体

二、while循环

  1. 语法:

    循环变量初始化
    while(循环条件){
    	循环体
    	循环变量的变化
    }
    
  2. 执行流程:

    1. 对循环变量进行初始化
    2. 判断while后的布尔表达式的结果是否为true
    3. 如果结果为true,则执行大括号中的代码。代码执行结束之后,本次循环结束,再次判断while后的布尔表达式是否为true
    4. 如果结果为false,则不执行大括号中的代码,直接越过while循环,继续执行后面的代码
  3. 执行特点:先判断条件,再执行代码。执行的次数:0~n次。

  4. 注意

    1. 循环过程中,如果循环变量没有给予任何改变,可能会出现死循环。
    2. 循环条件如果直接给的 true,则循环一直进行,也是死循环的现象。
    public class TestWhile {
    	public static void main(String[] args) {
    		//计算1到100的累加和
    		int sum = 0;
    		int i = 1;
    		while(i <= 100){
    			sum += i;
    			i++;
    		}
    		System.out.println(sum);
    	}
    }
    

三、do…while循环

  1. 语法:

    循环变量初始化
    do{
    	循环体
    	循环变量的变化
    }while(循环条件);
    
  2. 执行流程:

    1. 对循环变量进行初始化
    2. 执行do之后的代码
    3. 判断while后的布尔表达式的结果是否为true
    4. 如果结果为true,则再次执行do之后的代码,本次循环结束。再次判断while后的布尔表达式的结果是否为true
    5. 如果结果为false,则不执行大括号中的代码,直接越过while循环,继续执行后面的代码
  3. 执行特点:先执行一次代码,再进行判断。执行的次数:1~n次

  4. do…while与while的区别:

    1. do…while循环,无论布尔表达式是否为true,都会至少执行一次do之后的代码
    2. while循环,如果表达式结果一开始就是false,则代码不会得到执行
    public class TestDoWhile {
    	public static void main(String[] args) {
    		// 计算1到100的累加和
    		int sum = 0;
    		int i = 1;
    		do {
    			sum += i;
    			i++;
    		} while (i <= 100);
    		System.out.println(sum);
    	}	
    }
    

四、for循环

  1. 语法:

    for(循环变量初始化;循环条件;循环变量的改变){
        循环体
    }
    
  2. 执行流程:

    1. 执行循环变量初始化语句,对循环变量进行初始化
    2. 对循环条件进行判断,如果结果为true,则进入循环体语句代码
    3. 执行循环变量变化语句
    4. 对循环条件进行判断,如果结果为true,则进入循环体语句代码
    5. 执行循环变量变化语句
    6. 对循环条件进行判断,如果结果为false,结束循环
  3. 执行特点:先判断条件,再执行代码。执行的次数:0~n次。

  4. 关于for循环的循环变量:

    1. for循环的循环变量为仅在循环内有效的局部变量
    2. 循环变量的初始化可以声明在for循环的外面,但是不建议这样做,因为会加大循环变量的作用域,不利于该变量的回收
    3. 循环变量的变化可以写在循环内部,但不建议这样做
    public class TestFor {
    	public static void main(String[] args) {
    		//计算1到100的累加和
    		int sum = 0;
    		for (int i = 0; i <= 100; i++) {
    			sum += i;
    		}
    		System.out.println(sum);
    	}
    }
    

五、流程控制

  1. 关键字:break

    作用:结束循环,无论之后还有多少次循环,都不再进行,直接退出

    public class TestBreak {
    	public static void main(String[] args) {
    		// 计算1到100的累加和
    		int sum = 0;
    		int i = 1;
    		while (true) {
    			if (i == 101)break;
    			sum += i;
    			i++;
    		}
    		System.out.println(sum);
    	}
    }
    
  2. 关键字:continue

    作用:结束本次循环,继续后续循环

    public class TestContinue {
    	public static void main(String[] args) {
    		//计算1-100中所有偶数的累加和
    		int sum = 0;
    		for (int i = 0; i <= 100; i++) {
    			if(i % 2 != 0) continue;
    			sum += i;
    		}
    		System.out.println(sum);
    	}
    }
    
  3. break可以用在switch结构和循环结构中,但continue只能用在循环中

六、循环的嵌套

  1. 概念:在一个循环结构中,又定义了一个完整的循环结构。
  2. 执行流程:外层循环执行一次,内层循环执行一整圈
  3. 循环的执行次数:外层循环次数*内层循环次数
  4. 在嵌套循环中的break和continue
    1. break:结束当前所在层的循环,如果有外层循环则继续外层循环
    2. continue:结束当前层的本次循环,进入本层的下一次循环
  5. 嵌套循环可以使用label标签进行流程的控制
public class TestNestedLoop {
	public static void main(String[] args) {
		//打印九九乘法表
		outter:for (int i = 1; i < 10; i++) {
			inner:for (int j = 1; j <= i; j++) {
				System.out.print(j+"X"+i+"="+i*j+"\t");
			}
			System.out.println();
		}
	}
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值