从零学Java:学习笔记04-Java的循环结构、break、continue关键字的学习

循环结构:

循环结构表示的是"如果…""就继续…"的逻辑、表示的是指在应用程序中反复执行指定代码片段的一种程序结构、它的作用是减少在程序开发中的多余、重复书写的代码、循环结构也是最能够发挥出计算机优势的程序结构。
循环结构大致能够分为两类、当型和直到型。

  • 当型:
    当布尔表达式为true的时候、反复执行指定代码片段、当布尔表达式为false的时候才终止循环。常见的如while循环或for循环。
  • 直到型:
    先执行代码片段、再对布尔表达式进行判断、如果为true程序进入循环执行代码片段、直到布尔表达式为false的时候才终止循环。如 do-while循环。
while循环结构:

while循环是日常开发中非常常见的一种循环结构、在程序进入循环体之前会对布尔表达式进行判断、如果布尔表达式为true、程序进入循环体开始循环执行。
需要注意的是在循环体中都应该让循环条件有能够趋向于终止、结束的语句、不然会造成许多初学者在写应用程序的时候都会犯的问题 --> 死循环。
在这里插入图片描述

public class Main {

	// 计算1+2+3+4...+100的总和
    public static void main(String [] args){
        int i = 1; 
        int sum = 0;
	/**
	语法结构:
		while(循环条件(布尔表达式)){
		// 循环体
	// 循环体中应该具备终止循环的条件
	}
	*/
        while(i<=100){
            sum+=i; // sum = sum+i;
            i++; // 自增1
        }
        System.out.println(i);
    }
}

do-while循环结构:

do-while循环结构的特点在于它优先执行指定的代码片段、再判断布尔表达式是否为true、如果为true则一直循环到布尔表达式为false为止、也就是说do-while循环无论第一次的循环条件是否成立、都会执行一次指定的代码片段、而后再对布尔表达式进行判断决定是否继续循环。
do-while循环结构相比while循环结构的最大区别也在这里、另外语法结构也会不同、其他的都一样。
在这里插入图片描述

public class Main{

    public static void main(String [] args){

        int i = 1;
        int sum = 0;
	/**
		
	do{ // 优先于while执行
		// 循环体
	}while(循环条件(布尔表达式));
		
	*/
        do{ // 先执行do的代码片段
            sum += i; // sum = sum+i;
            i++; // i 自增
        }while(i<=100);// 后循环决定是否继续循环
        System.out.println(sum);
    }
}

for循环结构:

for循环是程序开发非常常用的循环结构、它是一种支持迭代、最有效、最灵活的循环结构、该循环结构非常简单、清晰灵活、在第一次进入循环的时候会首先对变量进行初始化(初始化表达式)、随后对布尔表达式进行判断是否满足条件、满足条件则进入循环体执行指定代码片段、每次循环结束后进行某种形式的迭代因子(步进迭代、实际就是对循环条件进行控制)、不满足条件则跳出循环体。
在这里插入图片描述
for循环还支持同时有多个变量初始化或多个迭代因子、之间使用逗号进行分分割
for循环同样支持死循环、语法是for( ; ; ) 该for循环结构的效果和while(true)的效果是相同的
for循环中声明的变量作用域仅限于循环体的内部、无法在外部引用for循环内部声明的变量

public class Main {

    public static void main(String [] args){

        /**
         * 语法结构:
         * for(初始化表达式;布尔表达式;迭代因子){
         *      // 循环体
         * }
         */
        int sum = 0;
        for(int i = 1;i<=100;i++){
            sum +=i;
        }
        /**
         * 执行顺序;
         * 1.初始化表达式 int i = 1
         * 2.布尔表达式 判断 i<=100
         * 3.符合条件则执行循环体 sum+=i
         * 4.迭代因子 i++
         * 5.执行2
         */
        System.out.println(sum);
    }
}
循环结构的练习题:

九九乘法表:

public class Main{
        public static void main(String [] args)
        {
            for(int i = 0;i<=9;i++){
                for(int j = 1;j<=i;j++){
                    System.out.print(i+"*"+j+"="+i*j+"\t");
                }
                System.out.println();
            }
    }
}

计算100以内的奇数及偶数的和:

public class Main{

    public static void main(String [] args){

        // 奇数变量
        int odd = 0;
        // 偶数变量
        int even = 0;
        // 条件变量
        int number =100;
        // 循环条件:条件变量>=0才进行循环
        while(number>=0){
            // 判断是否是奇数
            if(number%2==0){
                even+=number;
                // 否则是奇数
            }else{
                odd+=number;
            }
            // 每循环一次递减一次
            number--;
        }
        System.out.println("奇数的总和:"+odd);
        System.out.println("偶数的总和:"+even);
    }
}

while循环或其他循环输出1-1000之间能被5整除的数,且每行输出5个:

public class Main{

    public static void main(String [] args){

        // 条件变量
        int number = 1000;
        // 循环条件
        while(number>=1){
            // 条件变量能被5整数
            if(number%5==0){
                // 将变量输出
                System.out.print(number+"\t");
            }
            // 5*5 = 25 = number % 25 每行输出5个
            if(number%25==0){
                System.out.println();
            }
            // 控制循环条件
            number--;
        }
    }
}

break关键字:

顾名思义break是终止的意思、当应用程序的循环结构或是switch流程控制结构碰见break关键字的时候、会终止当前整个循环或switch。

public class Main{

    public static void main(String [] args){

        int total = 0; // 计数器
        // 无限循环
        while(true){
        	// 循环一次计数器+1
            total++;
            // 随机产生1~100之间的数
            int number = (int)(100*Math.random());
            System.out.println(number);
            // 判断随机数==66 符合条件则break终止整个循环
            if(number==66){
                break;
            }
        }
        System.out.println("程序终止、一共循环了"+total+"次");
    }
}

continue关键字:

continue关键字仅能用于循环结构中、它的作用是终止当前的循环、即是跳过当前循环体中尚未被执行的代码片段、等待下一次循环的条件判定。
continue关键字用作while或do-while循环结构中时、程序执行会跳至到循环的首部。
continue关键字用作for循环结构中时、程序执行会跳至到迭代因子部分。
如果有多层循环的情况下、continue或break都可以使用标签的方式快速跳至到外层循环。

public class Main{

    public static void main(String [] args){
        // 把100~150之间不能被3整除的数输出,并且每行输出5个
        int total = 0;
        for(int i = 100;i<150;i++){
        	// 判断条件是否符合
            if(i%3==0){
            // 如果符合则直接跳过本次循环 继续下次循环
                continue;
            }
            total++;
            System.out.println(i+"\t");
        }
        System.out.println("能被3整除的数有"+total+"个");
		
		// continue标签(类似于goto的作用)
		outer:for(int i =0;i<10;i++){
			for(int j = 0;j<10;j++){
				if(j==8){
					continue outer;// 跳至外层循环
				}
			}
		}
    }
}

猜你喜欢

转载自blog.csdn.net/weixin_38858343/article/details/83445138