Java程序设计的基本结构 - 循环结构

Java程序设计的基本结构 - 循环结构

文本关键字:基本结构、循环结构、while、do-while、forjava

1、循环的基本结构

为了讲解方便,咱们能够将循环结构划分为四个部分来进行描述。固然,这四个部分并非都要出现,甚至在都不出现时也能够构成一个循环结构。而且,对于不一样的循环结构,每一个部分的相对位置也不一样。dom

1. 初始化部分

在进入循环结构以前能够定义一些循环中以及循环结束后都要用到的变量,进行赋值。ide

2. 判断条件部分

用于决定是否继续进行循环,若是为假,则循环结束。判断部分能够直接使用一个布尔类型的变量,或者使用表达式,可是必须保证表达式的结果为布尔类型。工具

3. 循环体部分

循环结构的核心部分,用于书写每次想要重复执行的代码,一般要根据程序功能来设计。设计

4. 迭代部分

用于辅助控制循环的结束,在循环体以后执行,如变量自增等。
Java程序设计的基本结构 - 循环结构
与判断结构相似,当不使用大括号时,循环结构只能控制一行代码,一般咱们会添加大括号code

2、while循环

1. 循环结构

[初始化部分]
while(条件判断部分){
    循环体
    [迭代部分]
}

2. 循环特色

对于while循环,一般用于循环次数不肯定时,如:让使用者决定何时退出循环。blog

  • 能够用一个布尔变量直接来决定循环是否继续
  • 能够用break关键字随时跳出循环
  • 当条件判断部分不成立时结束循环
  • 初始化部分和迭代部分能够省略
  • 条件判断部分后若是出现分号会致使结构直接结束

3. 示例程序

  • 循环输出1到9
public static void main(String[] args){
    // 初始化部分
    int i = 1;
    // 括号中为循环继续执行的条件:当i的值小于等于9时
    while(i <= 9){
        // 循环体部分
        System.out.println(i);
        // 迭代部分:辅助控制循环结束或根据循环体的须要来写
        i++;
    }
}
  • 猜字程序
import java.util.Scanner;
import java.util.Random;

public class Test{
    public static void main(String[] args){
        // 初始化Scanner,用于从键盘读入数据
        Scanner sc = new Scanner(System.in);
        // 初始化随机数生成工具
        Random random = new Random();
        // 随机生成一个0~99的整数
        int n = random.nextInt(100);
        // 定义一个布尔类型的变量,用于控制循环的结束
        boolean flag = true; 
        // 使用flag做为控制循环结束的变量       
        while(flag){
            System.out.println("请输入一个数:");
            // 从键盘读取一个数
            int temp = sc.nextInt();
            // 判断输入的数是否与随机数相同,猜中则退出
            if(temp == n){
                System.out.println("猜中了!");
                // 修改flag为false,使得循环退出        
                flag = false;
            }else{
                // 若是没有猜中,就让用户本身决定是否是要继续猜
                System.out.println("猜错了!还要继续吗?1:继续2:退出");
                // 若是输入的数字为2则退出(此处暂不考虑输入出错等其余状况)
                if(sc.nextInt() == 2){
                    // 修改flag为false,使得循环退出        
                    flag = false;
                }
            }
        }
        // 使用后关闭
        sc.close();
    }
}

3、do-while循环

1. 循环结构

[初始化部分]
do{
    循环体
    [迭代部分]
}while(条件判断部分);

Java程序设计的基本结构 - 循环结构

2. 循环特色

do-while循环与while循环的用法基本相同,主要的不一样点在于循环体(迭代部分)必定会先执行一次,而后再进行判断,这很是适合在初学时作成菜单程序。it

  • 能够用一个布尔变量直接来决定循环是否继续
  • 能够用break关键字随时跳出循环
  • 当条件判断部分不成立时结束循环
  • 初始化部分和迭代部分能够省略

3. 示例程序

  • 菜单程序

break只能跳出离本身最近一层的switch-case或循环结构,若是想直接跳出指定层的循环,须要使用到自定义标签。自定义标签的用法比较简单,直接在一个循环结构的起始位置加一个单词,配合冒号使用,在进行跳出时,能够在break后面添加自定义标签的名称,便可跳出指定层的循环。for循环

import java.util.Scanner;

public class Test{
    public static void main(String[] args){
        // 初始化Scanner,用于从键盘读入数据
        Scanner sc = new Scanner(System.in);
        // 在此处使用自定义标签out(名称能够自定义)来进行标记
        out:do{
            System.out.println("****欢迎使用xxx系统****");
            System.out.println("****1.系统功能一*******");
            System.out.println("****2.系统功能二*******");
            System.out.println("****3.退出系统*********");
            System.out.print("请输入功能选项:");
            // 从键盘读入一个数选择要执行的功能
            int select = sc.nextInt();
            switch(select){
                case 1:
                    // 功能一相关代码
                    break;
                case 2:
                    // 功能二相关代码
                    break;
                case 3:
                    // 指定跳出外层的do-while循环,不然只能跳出当前的switch-case结构
                    break out;
            }
        // 判断条件一直为真,除非用户输入选项3退出系统,则使用break跳出。
        }while(true);
        // 使用后关闭
        sc.close();
    }
}

4、for循环

1. 循环结构

for(初始化部分;条件判断部分;迭代部分){
    循环体
}

2. 循环特色

for循环主要用于循环次数肯定的状况,一般使用break直接跳出循环是因为已经完成了所需工做,终止剩余无用循环以提升程序运行效率。程序设计

  • for循环的一个明显特色在于初始化部分,迭代部分的控制比较方便,能够彻底在循环内部完成
  • 初始化部分写在小括号中第一个位置,只会执行一次
  • 若是在初始化部分声明一个新的变量,则该变量只能在循环内部使用
  • 判断条件出如今小括号的中间位置,能够是布尔类型的变量或表达式,也能够直接省略使用break关键字手动跳出
  • 迭代部分一般用于变量的控制,每次循环体结束后执行
  • continue关键字能够用于全部的循环结构,做用是当即结束当前循环(跳过循环体的剩余部份内容,迭代部分依然会执行),进入下一次循环

3. 示例程序

  • 计算整数1~10的加和
public static void main(String[] args){
    // 定义一个整数类型变量,用于记录结果
    int sum = 0;
    for(int i = 1;i <= 10;i++){
        // 根据逻辑,将每次获得的值相加
        sum += i;
    }
    // 输出计算结果
    System.out.println(sum);
}
  • 输出整数0~100范围内的全部偶数
public static void main(String[] args){
    for(int i = 0;i <= 100;i++){
        // 判断当前数字的奇偶性,若是是奇数则跳过输出语句
        if(i % 2 != 0){
            // 若是是奇数,将跳过循环体剩余的部分,迭代部分不受影响
            continue;
        }
        System.out.println(i);
    }
    // 输出计算结果
    System.out.println(sum);
}

5、死循环

死循环的出现是因为咱们没有正确的指定循环的终止条件和控制相关的变量,致使判断条件部分一直为真,使得循环结构没法结束。但有些时候根据功能须要咱们会手动先构造一个死循环,而后使用break来进行跳出,如:菜单程序,由用户来决定何时结束,进行循环的跳出。手动构建一个死循环十分简单,可是若是意外的出现死循环就须要优先检查条件判断部分以及相关变量的变化了。

1. while循环

while(true){
    循环体
}

2. do-while循环

do{
    循环体
}while(true)

3. for循环

// 是的,你没有看错,全部的部分都不须要填写,可是分号不能省略
for(;;){
    循环体
}
相关文章
相关标签/搜索