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

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

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

一、循环的基本结构

为了讲解方便,我们可以将循环结构划分为四个部分来进行描述。当然,这四个部分并不是都要出现,甚至在都不出现时也可以构成一个循环结构。并且,对于不同的循环结构,每个部分的相对位置也不同。

1. 初始化部分

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

2. 判断条件部分

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

3. 循环体部分

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

4. 迭代部分

用于辅助控制循环的结束,在循环体之后执行,如变量自增等。

与判断结构类似,当不使用大括号时,循环结构只能控制一行代码,通常我们会添加大括号

二、while循环

1. 循环结构

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

2. 循环特点

对于while循环,通常用于循环次数不确定时,如:让使用者决定什么时候退出循环。

  • 可以用一个布尔变量直接来决定循环是否继续
  • 可以用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();
    }
}

三、do-while循环

1. 循环结构

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

2. 循环特点

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

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

3. 示例程序

  • 菜单程序

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

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();
    }
}

四、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);
}

五、死循环

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

1. while循环

while(true){
    循环体
}

2. do-while循环

do{
    循环体
}while(true)

3. for循环

// 是的,你没有看错,所有的部分都不需要填写,但是分号不能省略
for(;;){
    循环体
}

原文地址:https://blog.51cto.com/10984944/2461607

时间: 2024-10-12 20:20:59

Java程序设计的基本结构 - 循环结构的相关文章

Java使用条件语句和循环结构确定控制流

与任何程序设计语言一样,Java使用条件语句和循环结构确定控制流.本文将简单讲解条件.循环和switch. 一.块作用域 块(block),即复合语句.是指由一对大括号括起来的若干条简单的Java语句.块确定了变量的作用域. 比如: 1 public class Code { 2 static 3 { 4 System.out.println("1"); 5 } 6 { 7 System.out.println("2"); 8 } 9 public Code() 1

java里的分支语句--程序运行流程的分类(顺序结构,分支结构,循环结构)

JAVA里面的程序运行流程分三大类: 1,顺序结构:顺序结构就是依次执行每一行代码 2,分支结构:分支结构就是按不同的条件进行分支 3,循环结构:一段代码依条件进行循环执行. 其中,分支结构有两大类: if...else...结构和switch...结构       switch中的case支持的数据类型只有四种:    char  (字符型)    byte  (比特型)    short (短整型)    int     (整型) 注意switch里面的判断语句后面需要加break,否则的话

Java基础第六章(循环结构二)

一.for循环 语法: for(表达式1;表达式2;表达式3){ //循环体}1.表达式1就是一个赋值的语句,循环结构的初始化部分,为循环变量赋初始值 例如:int i=0;2.表达式2条件语句,循环结构的循环条件,例如:i<1003.表达式3赋值语句,通常使用++或--运算符.循环结构的迭代部分,通常用来修改循环变量的值 例如:i++ 示例: package cn.ytzl.test; import java.util.Scanner; public class Test { public s

java基础---5. 选择、循环结构

1 选择结构 1.1 if语句 格式1:单if语句 if(关系表达式) { //语句体 } 格式2:标准if...else语句 if(关系表达式) { //语句体1 } else { //语句体2 } 格式3 if(判断条件1) { //执行语句1: } else if(判断条件2) { //执行语句2: } ... } else if(判断条件2) { //执行语句n: } else { //执行语句n+1; } 1.2 switch语句 格式 switch(表达式){ case 常量值1:

C语言程序设计-第5章 循环结构程序设计

5.2 用while语句实现循环 while(表达式) 语句 只要当循环条件表达式为真(即给定的条件成立),就执行循环体语句. while循环的特点是:先判断条件表达式,后执行循环体语句. 例5.1 求1+2+3+...+100. #include <stdio.h> #include <stdlib.h> int main() { int i=1,sum=0; while(i<=100) { sum=sum+i; i++; } printf("sum=%d\n&q

Java历程-初学篇 Day07 循环结构2 for循环

一,格式 for(赋值语句//为循环变量赋初值;条件语句//循环结构的循环条件;赋值语句//迭代,修改循环变量的值){ //循环体; } 二,简单举例 for(int i=1;i<=10;i++){ System.out.print("第"+i+"遍循环"); } 三,for循环条件可以少吗? 当然可以,他可以放在for循环内或者外面 甚至可以写个死循环 for(;;){ System.out.println("死循环"); } 四,简单举

JAVA语法---顺序+分支结构+循环结构

一.分支结构之单分支 第一种:if语句 if(条件){ 执行语句 } 第二种:if else if语句 if(条件){ 执行语句 }else if(条件){ 执行语句 }else{ 执行语句 } 注意:if里面的条件结果是boolean值.即true 执行,false不执行. 二.分支结构之多分支 多分支语句之:switch ...... case switch(值){ case 值1: 执行语句: break: case 值2: 执行语句: break; default: 执行语句: } 分析

iOS开发入门 ? C语言(分支结构 + 循环结构)

分支结构: if 语句: 第一种:如果条件表达式成立就执行小括号后面大括号中的语句 if(条件表达式){ 语句; ... } 第二种:如果条件表达式成立就执行if后面小括号后面大括号中的语句,否则就执行else后面大括号中语句 这里至少有一个代码会被执行 if(条件表达式){ 语句; ... }else{ 语句; ... } 第三种: if(条件表达式1){ 语句; .... }else if(条件表达式2){ 语句; .... }else if(条件表达式3){ 语句; .... } ....

C语言的基本结构——循环结构

  今天我们计算机协会的社长给我说让我去给小学弟小学妹们讲一次C语言入门,他们老师已经讲过前面我们写过的博文了,我打算给他们讲一下C语言的基本结构--循环,判断,分支.  今天我们就着重说说循环结构.  循环结构分为三种,分别是for.while.dowhile;  我们首先说第一种:for循环..他的代码格式为: for(判断的数值初始化;判断条件;改变判断数值大小){ 循环语句块: }   我们举个例子,我们以输出1~10的数字为例: #include<stdio.h> int main(