天天看点

Java学习笔记——Java语言基础(三)(顺序结构语句之循环语句、循环嵌套以及控制跳转语句)

一:循环语句

1.1 循环结构

1.循环结构:循环语句可以在满足循环条件的情况下,反复执行某一段代码,这段被重复执行的代码称为循环体语句,在反复执行这个循环体时,需要在合适的时候将循环判断条件修改为false,从而结束循环,否则会形成死循环。

2.循环结构的分类:

  1. for循环
  2. while循环
  3. do…while循环

1.2 循环结构之for循环

1.for循环语句的格式

for(初始化表达式;判断条件语句;控制条件语句){

循环体语句

}

2.for循环语句的执行流程

  1. 执行初始化表达式语句
  2. 执行判断条件语句,返回值是ture还是false。如果为ture,继续执行,否则结束循环
  3. 条件判断为ture,执行循环体语句
  4. 执行控制条件语句
  5. 返回2继续执行知道不符合判断条件语句

- 注意:初始化表达式语句只执行一次

3.for循环案例练习之水仙花数

输出所有的水仙花数

public class daffodil {
    public static void main(String[] args) {
       /*输出所有的水仙花数
       水仙花数:一个三位数,其各位数字的立方和等于该数本身
       例如:153=1*1*1+5*5*5+3*3*3=153
       153就是一个水仙花数
        */
        int count = 0;
        //水仙花数是一个三位数,确定循环的范围
        for (int i = 100; i < 1000; i++) {
            int bai = i / 100;
            int shi = i % 100 / 10;
            int ge = i % 10;
            if (i == bai * bai * bai + shi * shi * shi + ge * ge * ge) {
                System.out.println(i + "为水仙花数");
                count++;
            }
        }
        System.out.println("水仙花数共有"+count);
    }
}
           

运行结果:

Java学习笔记——Java语言基础(三)(顺序结构语句之循环语句、循环嵌套以及控制跳转语句)

1.3 循环结构之while循环

1.while循环的基本格式

初始化条件语句;

while(判断条件语句) {

循环体语句;

控制条件语句;

}

2.while循环的执行流程

  1. 执行初始化条件语句
  2. 执行判断条件语句,看其返回值,如果是ture继续执行,如果是false则结束循环
  3. 判断条件为ture,执行循环体语句
  4. 执行控制条件语句
  5. 返回2继续执行,知道循环结束。

3.while循环练习之求出1-100的和

public class Test {
    public static void main(String[] args) {
        //求出1-100的奇数和偶数和
        //用while循环1-100的数字,使用if选择语句对数字的奇偶进行判断
        int sumji=0;
        int sumou=0;
        int i=0;
        while ( i<=100){
            if (i%2==0){
                sumou+=i;
            }else {
                sumji+=i;
            }
            i++;
        }
        System.out.println("0-100奇数和为"+sumji);
        System.out.println("0-100偶数和为"+sumou);
    }
}
           

运行结果:

Java学习笔记——Java语言基础(三)(顺序结构语句之循环语句、循环嵌套以及控制跳转语句)

1.4 循环结构之do…while循环

1.do…while循环格式

初始化条件语句
     do{
         循环体语句
         控制条件语句
         }while(判断条件语句)
           

2.do…while循环流程

  1. 执行初始化条件语句
  2. 执行循环体语句
  3. 执行控制条件语句
  4. 执行判断条件语句,判断其返回值,如果是ture,则继续执行。否则结束循环
  5. 判断结果为ture,返回2,直到循环结束

3.do…while的练习之从1到n的和

public class dowhile {
    public static void main(String[] args) {
        //键盘获取输入数字
        //从1到所输入数字的之和
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入一个数字");
        int n = sc.nextInt();
        int i=1;
        int sum=0;
        do {
            sum+=i;
            i++;
        }while (i<=n);
        System.out.println(sum);
    }
}
           

1.5 循环结构中三种循环语句的区别

  1. do.while至少执行一次循环体,for循环和while循环必须先判断条件语句是否成立,然后才能决定是否执行循环体语句
  2. 选择:如果在循环结束够,继续使用控制条件的变量,则用while循环,否则用for循环。
  3. 建议使用循环是,优先考虑for循环,然后是while循环,最会是do…while循环。
  • 注意:循环中注意控制条件语句控制的变量,不然容易导致死循环
  • 两种最简单的死循环格式:
  • while(ture){循环体}
  • for( ; ; ){循环体}

二:for循环嵌套

1.外部循环循环一次内部循环循环结束后才能进行接下来的外部循环。

2.循环嵌套的案例演示

(1)打印4行5列的星星

public class forfor {
    /*
    使用for循环嵌套打印出一个4行5列的图案
        *****
		*****
		*****
		*****
     */
    public static void main(String[] args) {
        for (int i = 0; i < 4; i++) {
            for (int j = 0; j < 5; j++) {
                System.out.print("*"+" ");
            }
            System.out.println();
        }
    }
}
           

运行结果:

Java学习笔记——Java语言基础(三)(顺序结构语句之循环语句、循环嵌套以及控制跳转语句)

(2)使用循环嵌套输出正三角形

import java.util.Scanner;
public class forfor {
    /*
    使用for循环嵌套打印一个正三角形的图案(底和高相等)
    长度有键盘输入
        *
		* *
		* * *
		* * * *
		............
     */
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("输入底或者高");
        int n = sc.nextInt();
        for (int i = 0; i < n; i++) {
            for (int j = 0; j <= i; j++) {
                System.out.print("*"+" ");
            }
            System.out.println();
        }
    }
}
           

运行结果:

Java学习笔记——Java语言基础(三)(顺序结构语句之循环语句、循环嵌套以及控制跳转语句)

(3)九九乘法表

import java.util.Scanner;
public class forfor {
    /*
    使用for循环嵌套打印乘法表
    */
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("输入截止的数字");
        int n = sc.nextInt();
        for (int i = 1; i <=n; i++) {
            for (int j = 1; j <= i; j++) {
                //"\t" 表示一个tab键
                System.out.print(j+"*"+i+"="+i*j+"\t");
            }
            System.out.println();
        }
    }
}
           
Java学习笔记——Java语言基础(三)(顺序结构语句之循环语句、循环嵌套以及控制跳转语句)

(4)使用for循环嵌套打印镂空金字塔

import java.util.Scanner;
public class gold {
    /*打印一个镂空金字塔,例如:金字塔的高度由用户输入
     *     i=0 j=3 k=1
     * *      i=1 j=2  k=3
     *   *
     * * * *
     */
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入金字塔的高度");
        int n = sc.nextInt();
        for (int i = 0; i < n; i++) {
            //用变量j表示每行的空格数
            for (int j = 0; j < n - 1 - i; j++) {
                System.out.print(" ");
            }//k表示每行*的个数
            for (int k = 0; k < 2 * i + 1; k++) {
                //第一行和最后一行*全打印
                if (i == 0 || i == n - 1) {
                    System.out.print("*");
                } //每行的第一个*和最后一个*打印
                else if (k == 0 || k == 2 * i) {
                    System.out.print("*");
                } else {
                    System.out.print(" ");
                }
            }
            System.out.println();
        }
    }
}

           

运行结果:

Java学习笔记——Java语言基础(三)(顺序结构语句之循环语句、循环嵌套以及控制跳转语句)

三:控制跳转语句

1.控制跳转语句的分类:

  1. break 中断
  2. continue 继续
  3. return 返回

3.1 控制跳转语句之break语句

1.break语句的使用场景

(1):在选择结构switch语句中使用

(2):在循环语句中

- 注意:离开使用场景的break是没有意义的

3.2 控制跳转语句之continue语句

1.continue语句的使用场景

a.循环体中使用,离开循环体的存在是没有意义的。为的是跳出一次循环,执行下一步操作。

3.3 控制跳转语句之return语句

1.return的作用: 就是退出一个方法以及跳转到上层调用的方法(后面的博客会写到这方面的知识)

3.4 控制跳转语句的使用

案例:分别输出不同的语句

public class control {
    public static void main(String[] args) {
        for (int i = 1; i <=10; i++) {
            if (i%3==0){
                //在if中修改代码,便可实现控制打印的次数
                break;
            }
        }
        System.out.println("运行的次数");
    }
}

           

当if语句中填写的是break,这是会打印两次,

那么,当我们想要运行7次,填写的应该是continue

for (int i = 1; i <=10; i++) {
            if (i%3==0){
                //在if中修改continue,便可实现控制打印的次数为7次
               continue;
            }
        }
        System.out.println("运行的次数");
           

运行13次:

for (int i = 1; i <=10; i++) {
            if (i%3==0){
   //在if中修改System.out.println("运行的次数");便可实现控制打印13次
              System.out.println("运行的次数");
            }
        }
        System.out.println("运行的次数");
           

继续阅读