您的位置:首页 > 编程语言 > Java开发

快读掌握JAVA流程控制的循环结构

2017-11-29 22:26 169 查看
流程控制的 循环结构

今天我们来讲一下流程控制的 循环结构。

循环的第一种较为简单的循环结构。(while 循环)

下面是while循环的流程结构

while(循环条件){

               循环体

}

循环体的的规则有哪些呢?

1.当判断条件成立时,运行循环体。

2当判断条件不成立时,结束循环。

3.当判断条件恒成立时,会出现死循环。



当然出现死循环也不要怕。我们可以给死循环写一个方法来结束死循环。(下面我会举例子给大家)

现在来说一下循环语句的执行顺序

先执行循环条件,在执行循环体,当循环条件一直成立时,循环体会一直执行。

直到循环条件不成立时,才会停止循环。

接下我写一个例子给大家。

题目;打印十遍睡觉

我们大家一起来找一下思路

我们昨天学到if的时候是不是要先声明一个变量?

这里我们这个变量不叫变量叫做初始化循环增量

那么第一步应该;声明一个初始化循环增量

那第二步我们是不是应该寻找这个循环的判断条件呢?

答案是:是的。

上面说

while(循环条件){

               循环体

}

这是循环的流程结构。那我们是不是还缺少一个循环体没有构思呢。
所以我们第三步就是写循环体对吧。

接下来我们来写一下。

public static void main (String[]agre){

int  number = 0; //初始化循环增量

while(number<10){  //循环条件

    System.out.println("睡觉")//循环体 注意;一定要写循环变量不然会变成死循环。

    number++;

}

}

下面我们再来练习几道题

打印1-100的数

public static void main (String[]agre){

int  num= 0;

while(num<101){

Systrm.out.println("num")

num++;

}

打印1-10的和

int number = 0;

int number1 = 0;

while(number<11)}

number = number+number1;

number++;

{

System.out.println("number")

}

银行定期存款五年以上的利率为7.5%

现在小明要存10000元存十年,那小明十年以后的存款是多少钱呢

提示 (上一年本金=本金+利息)

public static void main (String[]agre){

 int num = 1;

double money=10000;

 int year = 10;

while(num<year){

money = money+(money*0.075);

num++;

}

System.out.println("money");

}

循环体2

为了反方便快捷我就用数字来表示do while 循环体的流程顺序了

循环体流程结构

do{                    

      //  1️⃣循环体 (循环体的内容)

}while(循环条件){ // 2️⃣

}

do while 循环体的规则

看上面的循环流程循序就知道。

先执行循环体(不管有没有循环条件。或者有循环条件不管它成立与否都会先执行循环体)然后在判断循环条件 ,如果循环条件成立 那么好,就继续执行循环体,如果循环条件不成立循环就会立即结束。

昨天说了变量今天还要提到变量 (重点)

不同的作用域中,变量名可以重复。相同的作用域中,变量名不可以重复。

那到底什么事作用域呢?

通常来说,一段程序代码中所用到的名字并不总是有效/可用的,而限定这个名字的可用性的代码范围就是这个名字的作用域。

接下来我们通过大量的联系来回顾一下昨天的Scanner这条语句,巩固理解一下今天这个do while循环的流程。

题目1:


 从周一开始打印 并询问明天上班不 输入上班继续打印 反之 停止程序

[b]public static void main (String[]agre){
[/b]

//先定义一个初始化循环增量 int num = 1;


Scanner scanner  = new Scanner(System.it);

String work ="";

do{

System.out.println("星期"+num);

System.out.println("你明天上班吗?输入:上班或者不上班");

work =scanner  nextLine();

number++;


}while(work.equals(上班)&&num<8);

{


接下来我们讲一下死循环 和如何跳出死循环

我们先来写一个死循环。

[b]public static void main (String[]agre){
[/b]

 int a = 1;

 int b = 100;

while(a<b){

Systrm.out.println(a);


}

}


答案会无限循环1

那么我们要如何结束他呢

[b]public static void main (String[]agre){
[/b]

 int c = 0;


 int a = 1;

 int b = 100;

while(a<b){   /输出值为TURE 所以无限循环


if(c ==2){

break;    /停止循环的关键。


System.out.println("停止循环")


c++;


}


Systrm.out.println(a);

}

}


<
d0e8
strong>这样就停止循环了[/b]

接下来我们就要讲我们的重重之重了!!!

for循环

for循环的流程结构

for(表达式(定义循环增量):判断循环的条件:表达式(循环增量增加)){

                                                     循环体

}

接下里我们随便写一个程序

需求用for循环打印十个睡觉

public static void main (String[]agre){

           1         2        3

for(int = a; a<10;a++){

                    4

System.out.println("睡觉")

    }

}

我们一起来看一下for循环执行的顺序

1-2-4-3-2-4-3  初始循环增量只循环一次。

在这里我们就可以突出说一下作用域的作用了请看下面截图



看我们的

Eclipse报错是什么。



我们将发生错误的话移到FOR循环里



他就没有错误了。这说明什么?

我们再看一个图同样的位置我们多声明了一个初始循环增量



这下应该明白作用域的作用了吧。

number 报错的原因是因为他们都在main入口函数的作用域里所以报错了。

接下来我们练几道题。

题目1:使用for循环求1-10的和。

public static viod main(String[]agre){

int num = 0;

for(int number = 1;number<11;number++){

 num= num+number;

}

System.out.println(num);

}

题目2:使用for循环 在1-100中 找出7的倍数的个数

public static void main(String[]agre){

int num =0;

for(int number = 1; number<101;number++){

if(num%7 == 0){

//System.out.println("number");这个的作用是输出那些数是7的倍数,可以省略。

num++;

}

System.out.orintln("num");

}

}


前面讲了这么多大家一起来回顾一下。while 和do while的区别是什么?

如果循环的增量只是用来控制循环的次数

再循环的外面不需要使用时可以选取for循环。

反之循环增量在循环外  你还要继续使用或者操作

这是 你可以选用while循环




for循环的嵌套



public static void main (String[]agre){

for(;;){                               外层循环结构


          循环体1


}for(;;){                             内层循环结构


          循环体2


}


}


}

接下来我们做一个题。

题目一

用for循环打印下面图形


****

****

****

****


public static void main(Srting[]agre){

         1                    2            3


for(int num= 0;num<4;num++){

           4                 5            6


for(int nuu = o;nuu<4;nuu++){

}                    7


System.out.print("*"); //打印*


}                    8


System.out.println(); //换行


}

提示;初始循环增量在程序中只运行一次。


我们来看一下程序运行的顺序 我们从上面标出来


1-2-4-7-6-5-7-6-5-7-6-5-7-6-5-7(当nuu<4不成立时,结束本次循环体内循环)

8-3-2-5-7-6-5-7-6-5-7-6-5-7-6   (当内循环条件再次不成立时,结束本次循环内循环)

8-3-2-5-7-6-5-7-6-5-7-6-5-7-6 

8-3-2-5-7-6-5-7-6-5-7-6-5-7-6

程序结束打印出

****

****

****

****


题目二

打印一个三行六列的矩形

public class lianxi1 {

public static void main(String[]agre) {

    for(int num =0;num < 3;num++ ) {

        for(int nuu = 0; nuu <6;nuu++) {

            System.out.print("*");

        }

        System.out.println();

    }

}

}   

题目三

打印一个尖向下的三角形

public class lianxi1 {

public static void main(String[]agre) {

    //打印一个尖向下的三角形

    for(int num =0;num < 5;num++ ) {

        for(int nuu = num; nuu <5;nuu++) {

            System.out.print("*");

        }

        System.out.println();

    }

}

}   

题目四

打印一个尖向上的三角形

public class lianxi1 {

public static void main(String[]agre) {

    for(int num =0;num < 5;num++ ) {

        for(int nuu = 0; nuu <num;nuu++) {

            System.out.print("*");

        }

        System.out.println();

    }

}

}   

题目五

1

12

123

1234

12345       

public class lianxi1 {

public static void main(String[]agre) {

    for(int num =1;num < 6;num++ ) {

        for(int nuu = 1; nuu <=num;nuu++) {

            System.out.print(nuu);

        }

        System.out.println();

    }

}

}   

题目六

打印

1*1=1    

2*2=2    2*2=4    

3*3=3    3*3=6    3*3=9    

4*4=4    4*4=8    4*4=12    4*4=16    

5*5=5    5*5=10    5*5=15    5*5=20    5*5=25    

6*6=6    6*6=12    6*6=18    6*6=24    6*6=30    6*6=36    

7*7=7    7*7=14    7*7=21    7*7=28    7*7=35    7*7=42    7*7=49    

8*8=8    8*8=16    8*8=24    8*8=32    8*8=40    8*8=48    8*8=56    8*8=64    

9*9=9    9*9=18    9*9=27    9*9=36    9*9=45    9*9=54    9*9=63    9*9=72    9*9=81   

public class lianxi1 {

public static void main(String[]agre) {

    for(int ni =1 ;ni<=9;ni++){

        for(int nu = 1;nu<=ni;nu++) {

        System.out.print(ni + "*"+ ni + "=" +ni*nu +"\t");

        

    }

          System.out.println();

}

    }

}  

我们做了这么多练习应该总结出来一个规律

for循环的外循环控制行数

内层循环控制  每一行 有多少个元素。

今天知识量还是很大的大家回去一定要多多复习多多写题。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐