Java基础教程——分支与循环结构(下)

上期我们详细了解了选择结构的语法以及用法,今天我们来详细的学习循环结构的相关知识

 

 

 

索引列表:

  • 什么是循环结构
  • for循环
  • while循环
  • 用函数创建循环(选学)
  • 循环嵌套
  • 死循环

什么是循环结构


循环结构,简单来说,是指在程序运行中不断地执行某一个语句(块)的结构 ,这种结构可以使程序重复执行,让程序重复完成同一个任务

举例,小明正在学习小古文,只要不会背,就持续地读,读到会背为止,这就是一个抽象的循环结构,重复执行的是读小古文,执行的条件是只要不会背就重复执行。

在游戏中,可以按前后左右键(或wsad键)移动角色,那么按键过程中会有一个循环结构重复检测,检测这个人按了什么键,然后根据按下的键调用不同程序执行,但是没有执行的条件,只是一味的重复执行,然后游戏结束就break(跳出循环),所以他不是死循环(后面会详细讲解)

for循环


for 循环是Java语言里面一个比较常见的循环结构,它可以让程序在条件内重复执行。它的基本语法是:


for (变量名(如果没有则需要定义);布尔表达式;变量更新)

    需要循环的语句;


在for 循环里有一个变量,它是一个局部变量,它控制着for 循环的变量更新,所以他是一个计数器变量。布尔表达式则控制着整个for循环,如果布尔表达式的结果为真,就会跳出for循环,而变量更新则是在原来计数器变量里更改变量的值(虽然他是一个计数器,但是他是可以在循环体中被调用的)

for循环一般用在指定次数的循环。

下面来看一个简单的例子:

两个小朋友在玩老狼老狼几点了的游戏,请试编一程序,输出这段话:

老狼老狼几点了?一点了

老狼老狼几点了?二点了

老狼老狼几点了?三点了

老狼老狼几点了?四点了

老狼老狼几点了?五点了

老狼老狼几点了?六点了

老狼老狼几点了?七点了

老狼老狼几点了?八点了

老狼老狼几点了?九点了

老狼老狼几点了?十点了

老狼老狼几点了?十一点了

老狼老狼几点了?十二点了

狼来啦,快跑!

public class Solution{

    public static void main(String[] args){

        System.out.println(“老狼老狼几点了?一点了\n老狼老狼几点了?二点了\n老狼老狼几点了?三点了\n老狼老狼几点了?四点了\n老狼老狼几点了?五点了\n老狼老狼几点了?六点了\n老狼老狼几点了?七点了\n老狼老狼几点了?八点了\n老狼老狼几点了?九点了\n老狼老狼几点了?十点了\n老狼老狼几点了?十一点了\n老狼老狼几点了?十二点了\n狼来啦,快跑!”);

    }

}

有人说,很简单,只要复制黏贴就可以简单解决,但是如果有几千句或几万句呢?这时就可以用循环结构来解决。

public class Solution{

    public static void main(String[] args){

        for(int i = 1;i <= 12;i ++){

            System.out.println(“老狼老狼几点了?” + i + “点了”);

        }

    }

}

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETkDnuqLnn7Pnga8,size_20,color_FFFFFF,t_70,g_se,x_16

运行结果:

老狼老狼几点了1点了
老狼老狼几点了2点了
老狼老狼几点了3点了
老狼老狼几点了4点了
老狼老狼几点了5点了
老狼老狼几点了6点了
老狼老狼几点了7点了
老狼老狼几点了8点了
老狼老狼几点了9点了
老狼老狼几点了10点了
老狼老狼几点了11点了
老狼老狼几点了12点了

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETkDnuqLnn7Pnga8,size_7,color_FFFFFF,t_70,g_se,x_16

while循环


while和for很相似但却不同,while一般用于和数组、变量没有直接关联的循环,while也是死循环的基本来源。它的语法如下:


while(布尔表达式)

    语句


大家想必也都知道了如果语句超过两条应该怎么办,那么就不多详细介绍了,我们来仔细地剖析一下while 循环的格式以及作用

首先语句的开头while()声明这是一个while 循环,中间括号里的又是我们熟悉的布尔表达式,布尔表达式放在这里的基本作用和 for 循环的基本一样,都是判断条件是否成立决定是否跳出循环,如果是则跳出循环,否则重复执行语句块中的内容。

接下来我们一起用儿歌的形式了解一下while 循环:

“一二三四五,上山打老虎,老虎不在家,打只小松鼠,松鼠有几只?一二三四五”

试编一程序,输出儿歌中“一二三四五”这五个数字。

目前我们有三种解法:

1)

public class Solution{

    public static void main(String[] args){

        System.out.println(“1\n2\n3\n4\n5”);

    }

}

2)

public class Solution{

     public static void main(String[] args){

        for (int i = 1;i <= 5;i ++){

            System.out.println(i);

        }

    }

}

3)

public class Solution {

    public static void main (String [] args){

        int i = 1;

       while (i <= 5){

            System.out.println(i);

        }

    }

}

其中,第三种是这一知识点比较重要的算法,也就是用while 循环去输出

1)

public class Solution{

    public static void main(String[] args){

        System.out.println(“1\n2\n3\n4\n5”);

    }

}

2)

public class Solution{

     public static void main(String[] args){

        for (int i = 1;i <= 5;i ++){

            System.out.println(i);

        }

    }

}

3)🌟🌟🌟

public class Solution {

    public static void main (String [] args){

        int i = 1;

       while (i <= 5){

            System.out.println(i);

        }

    }

}

(选学)用函数创建循环


你想看就看,不想看随你

这种循环运用了递归算法,建议先学了递归再回来看这个,会更容易理解

我们的主要思路是,当一个条件不满足,也就是布尔表达式为假,那么我们就重复调用函数本身(所以不可以用主方法来写,因为主方法不可以被自身或其他函数调用)

以下是代码实现:

 

public class HanshuXunhuan{

 

    public static int xunhuan(int n){//循环方法(一定要是静态的)

        if (n == 1){

            return n;

        }else{

            System.out.println(n);

        

            return xunhuan(n-1);

        }

    }

 

 

    public static void main(String args[]){

 

        xunhuan(100);//这里的参数是循环的次数可以更改

    }

}

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETkDnuqLnn7Pnga8,size_20,color_FFFFFF,t_70,g_se,x_16

运行结果:

100
99
98
97
96
95
94
93
92
91
90
89
88
87
86
85
84
83
82
81
80
79
78
77
76
75
74
73
72
71
70
69
68
67
66
65
64
63
62
61
60
59
58
57
56
55
54
53
52
51
50
49
48
47
46
45
44
43
42
41
40
39
38
37
36
35
34
33
32
31
30
29
28
27
26
25
24
23
22
21
20
19
18
17
16
15
14
13
12
11
10
9
8
7
6
5
4
3
2

循环嵌套


循环是可以嵌套的,嵌套起来的多个循环成为多重循环,多重循环分外循环和内循环,外循环是最外面的循环,内循环是除了外循环以外的内部的循环。多重循环执行的次数就是内循环执行次数乘外循环执行次数。

举例,小明要去四趟超市,每次要买四个牙刷,一共买了多少个牙刷?我们可以编写一个统计程序,定义一个整型变量sum,重复四次,每次也重复四次将sum重复加一。

public class Solution{

    public static void main (String [] args){

        int sum = 0;

        for(int i = 1; i <= 4; i ++){

            for(int j = 1;j <= 4;j ++){

                sum ++;

            }

        }

        System.out.println(sum);

    }

}

这里就不展示结果了,大家可以自己去试,这里我们把两个循环套在一起,就称之为循环的嵌套。

死循环


死循环是指永远不会跳出的循环,这种循环会一直执行,这种循环对程序来说通常是致命的,但有时也会用到死循环。我们简单了解一下就行了。


呢么这篇文章到这里就结束了,大家记得一键三连哦

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

RedstoneCuberoot

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

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

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

打赏作者

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

抵扣说明:

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

余额充值