Java循环语句

▪ 生活中的循环

打印50份试卷 10000米赛跑 锲而不舍地学习 旋转的车轮

▪ 循环结构的特点

循环结构 循环条件 循环操作

循环结构都由如下四个结构组成:

初始化、条件判断、循环体、迭代

while循环

▪ 在循环刚开始时,会计算一次“布尔表达式”的值,若条件为真,执行循环体。而对于后 来每一次额外的循环,都会在开始前重新计算一次。

▪ 语句中应有使循环趋向于结束的语句,否则会出现无限循环–––"死"循环。

示例: 使用while循环求0-100的和

public class Test2 {
    public static void main(String[] args) {
        int i = 0;
        int sum = 0;
        while (i <= 100) {
            sum += i; //sum = sum+i;
            i++;//没有i++;这种迭代语句将会成为死循环一直运行下去,直至内存溢出
        }
        System.out.println("Sum= " + sum);
    }
}

do-while循环

du-while与while的区别:

①▪ do-while:  先执行,后判断。 

②▪ while: – 先判断,后执行。

③do-while至少会被循环一次

public class Test2 {
    public static void main(String[] args) {
        //while循环
        int a = 0;
        while(a < 0){
            System.out.println(a);
            a++;
        }
        System.out.println("-----------------");
        //do-while 循环
        a=0;
        do{
            System.out.println(a);
            a++;
        }while(a < 0);
    }
}

for循环

▪ for循环语句是支持迭代的一种通用结构,是最有效、最灵 活的循环结构

▪ 语法形式

▪ for (初始表达式;布尔表达式;步进) { 循环体;

▪ }

▪ 注意事项 – for循环在执行条件测试后,先执行程序部分,再执行步进。 – 在for语句的初始化部分声明的变量,其作用域为整个for循环体 – “初始化”和“循环条件表达式”部分可以使用逗号来执行多个操作 – 如果三个部分都为空语句(分号;能省),相当于一个无限循环。

 示例:

public class Test2 {
    public static void main(String[] args){
        //用for循环输出3次Hello World
        for (int i = 0; i < 3; i++) {
            System.out.println("Hello World");
        }
    }
}

案例:

public class Test2 {
    public static void main(String[] args){
        //求1-5之间的数据和,并把求和结果在控制台输出
        int sum = 0;//定义一个整数变量sum用来累加这些数据
        for (int i = 1; i <= 5; i++) {
            sum += i;
        }
        System.out.println("1-5的和是:" + sum);

        System.out.println("------------------------------------------------------------");

        // 在for循环中通过if筛选出奇数    求1-10的奇数和
        int a = 0;//定义一个求和的变量,累加奇数和
        for (int i = 1; i <= 10 ; i++) {
            if(i%2 == 1){   //筛选出奇数
                a += i;
            }
        }
        System.out.println("1-10的奇数和是:" + a);
        
        
        
    }
}

总结:

三种循环的区别:

①for循环和while想你换(先判断在执行)

②do-while循环(先执行后判断)

for和while的区别:

①for循环和while循环的执行流程是一摸一样的。

②如果已知循环次数建议使用for循环如果不清楚要循环多少次建议使用while循环

③for循环中控制循环的变量只在循环中可以使用

跳转语句---break和continue

▪ 在任何循环语句的主体部分,均可用break控制循环的流程。break用于强行退出循环, 并执行循环中剩余的语句。(break语句还可用于多支语句switch中)

▪ continue 语句用在循环语句体中,用于终止某次循环过程,即跳过循环体中尚未执行 的语句,接着进行下一次是否执行循环的判定。

示例:

public class Test2 {
    public static void main(String[] args){
        //生成0-100随机数,直到生成88为止,停止循环  break语句
        int total = 0 ;
        System.out.println("Begin");
        while(true){
            total++;
            int i = (int)Math.round(100*Math.random());
            if(i == 88)break;
        }
        System.out.println("Game over,used" + total +"times");
        System.out.println("-----------------------------------------------------------");


        //把100-150之间不能被3整除的数输出:continue语句
        for (int i = 100; i < 150; i++) {
            if(i%3 == 0)
            continue;
            System.out.println(i);
        }
    }
}

跳转语句---return

▪ return语句从当前方法退出,返回到调用该方法的语句处,并从 该语句的下条语句处继续执行程序。

▪ 返回语句的两种格式(具体到方法时详细讲解)

– 1、return expression

▪ 返回一个值给调用该方法的语句。

▪ 返回值的数据类型必须和方法声明中的返回值类型一致或是精度低于声明的数据 类型。

– 2、return

▪ 当方法声明中用void声明返回类型为空时,应使用这种返回类型,它并返回任何值。

public class Test2 {
    public static void main(String[] args){
        int rs = add(100,200);
        System.out.println("和是:" + rs);
    }
    public static int add(int a,int b){
        int c = a+b;
        return c;
    }
public class Test2 {
    public static void main(String[] args){
        System.out.println("开始");
        chu(10,0);
        System.out.println("结束");
    }
    public static void chu(int a,int b){
        if(b == 0){
            System.out.println("您的数据有误");
            return;
        }
        int c = a/b;
        System.out.println("除法结果是:" + c);
    }

多重循环

▪ 三种循环方式

– while

–do-while

– for

▪ 多重循环(循环嵌套)

– 一个循环体内又包含另一个完整的循环结构

– 任何两种循环都可以相互嵌套

– 可以任意层次循环,但是一般并超过3层

▪ 多重循环执行过程

– 外层循环变量变化一次,内层循环变量要变化一遍

 for(循环条件1){

//循环操作1 

                    for(循环条件2){

//循环操作2 }

                    }

  while(循环条件1){
//循环操作1
            for(循环条件2){
//循环操作2
    }

递归算法

▪ 什么是递归(recursion)

– 程序调用自身的编程技巧称为递归。

– 一个过程或函数在其定义或说明中有直接或间接调用自身的一种方法

▪ 递归问题的特点

– 一个问题可被分解为若干层简单的子问题

– 子问题和其上层问题的解决方案一致

– 外层问题的解决依赖于子问题的解决

▪ 递归的优点

– 简单的程序

▪ 递归的缺点

– 但是递归调用会占用大量的系统堆栈,内存耗用多

– 在递归调用层次多时速度要比循环慢的多

▪ 递归的使用场合

– 任何可用递归解决的问题也能使用迭代解决。

– 当递归方法可以更加自然地反映问题,并且易于理解和调试,并且并强调效率问题时,可以采用递归。

– 在要求高性能的情况下尽量避免使用递归,递归既花时间又耗内存。

递归算法:在程序运行过程中,发生程序本身调用自己的情况,称之为递归
			注意:
				1、能不使用递归算法尽量不使用递归算法
						使用递归算法会加大资源的消耗
						如果递归算法的深度过于深,那么可能造成栈溢出
				2、如果用其他方法无法实现,就必须用递归
					例如:输出电脑上某一个磁盘上的所有文件名


public class Test2 {
    public static int getNumber(int number) {
        if (number == 1 || number == 2) {
            return 1;
        } else {
            return getNumber(number - 1) + getNumber(number - 2);
        }
    }

    public static void main(String[] args) {
        for (int i = 1; i <= 10; i++) {
            System.out.print(getNumber(i) + "\t");

        }
    }
}

<think>好的,用户让我介绍一下Java循环语句。首先,我需要确定用户的知识水平。可能他们刚开始学编程,或者有其他语言的背景想了解Java循环结构。 Java循环语句主要有三种:for、while和do-while。我应该分别解释每种循环的结构和适用场景,这样用户能知道在什么情况下使用哪种循环更合适。 接下来,得考虑是否需要给出示例代码。示例能帮助理解,特别是对于新手来说,看到具体的代码例子会更清楚循环的执行流程。比如,for循环的经典例子是遍历数组或执行固定次数的操作,while循环适合不确定循环次数的情况,而do-while至少执行一次。 还要注意区分while和do-while的区别,强调do-while的循环体至少执行一次,这在某些情况下很重要。用户可能容易混淆这两种,所以需要明确说明。 另外,可能需要提到增强型for循环(foreach),这是Java 5引入的,用于遍历集合或数组,简化代码。这部分对于处理集合特别有用,应该单独列出来说明。 最后,是否需要提醒循环控制语句,比如break和continue?虽然用户的问题可能不涉及这些,但简要提及可以让他们知道如何控制循环的执行流程。 总结一下,结构应该是先总述三种循环类型,然后分别详细讲解每种,包括语法、流程图、示例代码和适用场景。最后可以补充增强型for循环和控制语句,让内容更全面。要确保用词准确,示例简洁易懂,避免使用复杂术语,保持口语化,让用户容易理解。</think>以下是对Java循环语句的详细介绍(所有代码示例均使用$$...$$格式): 一、Java循环类型 Java提供三种基础循环结构: 1. `for` 循环 $$语法格式: for(初始化; 布尔表达式; 更新) { // 循环体 }$$ 适用场景:明确知道循环次数的情况 ```java // 示例:计算1-100的和 int sum = 0; for(int i=1; i<=100; i++){ sum += i; } ``` 2. `while` 循环 $$语法格式: while(布尔表达式) { // 循环体 }$$ 适用场景:不确定循环次数,但需满足条件才执行 ```java // 示例:猜数字游戏 int target = 42; Scanner scanner = new Scanner(System.in); while(true) { System.out.print("请输入猜测:"); int guess = scanner.nextInt(); if(guess == target) break; } ``` 3. `do...while` 循环 $$语法格式: do { // 循环体 } while(布尔表达式);$$ 特点:至少执行一次循环体 ```java // 示例:输入验证 int input; do { System.out.print("请输入1-100之间的数字:"); input = scanner.nextInt(); } while(input < 1 || input > 100); ``` 二、增强型for循环(foreach) Java 5+ 新增特性: $$语法格式: for(元素类型 变量名 : 集合或数组){ // 循环体 }$$ ```java // 示例:遍历数组 int[] numbers = {1, 2, 3, 4, 5}; for(int num : numbers) { System.out.println(num); } ``` 三、循环控制语句 1. `break`:立即终止当前循环 2. `continue`:跳过本次循环剩余代码 3. 循环标签(Label):控制多层嵌套循环 四、性能注意事项 1. 避免在循环内创建不必要的对象 2. 优先使用局部变量进行循环计算 3. 大数据量遍历时,foreach效率可能低于传统for循环 五、流程图示例 $$for循环执行流程: 开始 -> 初始化 -> 条件判断 -> [true]执行循环体 -> 更新 -> 条件判断 -> [false]结束循环$$ 建议通过实际编码练习加深理解,例如:制作九九乘法表、实现质数判断算法等。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Curran-java

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值