JAVA--循环结构

假如有一天你心血来潮,想把自己的姓名输出10遍,你可能会打出如下代码:

System.out.println("你的姓名");
System.out.println("你的姓名");
System.out.println("你的姓名");
System.out.println("你的姓名");
System.out.println("你的姓名");
System.out.println("你的姓名");
System.out.println("你的姓名");
System.out.println("你的姓名");
System.out.println("你的姓名");
System.out.println("你的姓名");

看起来好像不是很麻烦,但是如果需要输出100次甚至1000次呢?

此时利用循环结构会简单很多

循环结构

首先重点介绍一下循环三要素
   1): 循环变量的声明:用于控制循环次数的循环因子
   2): 循环条件: 用于判断是否执行相同或相似内容(循环体)的条件
   3):循环变量的改变方向:
             向着循环结束的方向改变。

在需要做大量重复或相似工作的时候,利用循环结构可以大大提升效率,二而循环结构又分如下几种

1.for循环

2.while循环

3.do-while循环

首先讲一下for循环.

for循环

语法代码示例:

for(1;2;3){
    //4
}

1循环变量的声明

2循环条件

3循环变量改变的方向

4代表循环体

执行逻辑:
       程序遇到for时,一定执行变量的声明和初始化
            然后执行循环条件的判断
        如果为false,会跳过循环结构,执行后续代码。
        如果为true,执行循环体,然后再执行变量的改变
        再执行循环条件的判断,以此往复,直至达成循环结束条件.

 

如果在某些场合中,循环执行到一半就达成了条件,继续跑下去的话会消耗资源;或者有的时候该次循环已经达成条件,可以进入下一次循环了,此时可以利用break,continue关键字来操作.

break关键字:用在循环结构中时,表示结束/打断循环:

 public static void main(String[] args) {
        for(int i=0;i<20;i++){
            System.out.print(i+" ");
            if(i>10){
                break;
            }
        }
        System.out.println("已结束循环");
    }

运行结果:

0 1 2 3 4 5 6 7 8 9 10 11 已结束循环

可以看到,在i=11时,达成了"i>10"这个条件,故循环在break;处中断,执行循环外的语句.

 continue关键字:用在循环结构中,表示结束当次循环体,继续下一次循环:

  public static void main(String[] args) {
        for(int i=0;i<10;i++){
            System.out.print(i+" ");
            if(i==5){
                continue;
            }
            System.out.println("这是第"+(i+1)+"次循环.");
        }
        System.out.println("已结束循环");
    }

运行结果:

0 这是第1次循环.
1 这是第2次循环.
2 这是第3次循环.
3 这是第4次循环.
4 这是第5次循环.
5 6 这是第7次循环.
7 这是第8次循环.
8 这是第9次循环.
9 这是第10次循环.
已结束循环

可以看到i=5时没有执行continue下面的语句,说明在此处循环跳过了continue下面的语句,从头进行.

此时你要输出自己姓名十次的需求也就很好解决了:

  public static void main(String[] args) {
       for(int i=0;i<10;i++){
           System.out.println("你的姓名第"+(i+1)+"次");
       }
    }

运行结果:

你的姓名第1次
你的姓名第2次
你的姓名第3次
你的姓名第4次
你的姓名第5次
你的姓名第6次
你的姓名第7次
你的姓名第8次
你的姓名第9次
你的姓名第10次

对比十行输出语句,代码是不是简洁了不少,而且如果想输出更多次,只需修改循环条件就可以了. 

while循环

while的意思是"当",所以while循环的意思也就很好理解了:当符合条件时,执行循环.

语法: 

while(循环条件){
	   循环体
	}

 执行逻辑:
        当程序遇到while时,一定执行循环条件,
          如果判断结果为false,就结束循环结构,执行后续代码
          如果判断结果为true,就执行循环体,
          然后再判断循环条件,直至达成条件,结束循环.

示例程序:

public static void main(String[] args) {
        int i=0;
        while (i<5){
            System.out.print(i+" ");
            i++;
        }
        System.out.println("已结束循环");
    }

运行结果:

0 1 2 3 4 已结束循环

每次循环结束时i都会自加1,当i自增至4时,执行i++,i=5,再判断i<5时条件已经为false,所以不再进入循环,执行循环外的语句.

此时再做一下输出自己姓名十次的需求:

  public static void main(String[] args) {
       int i=0;
       while (i<10){
           System.out.println("第"+(i+1)+"次输出姓名");
           i++;
       }
    }

输出结果:

你的姓名第1次
你的姓名第2次
你的姓名第3次
你的姓名第4次
你的姓名第5次
你的姓名第6次
你的姓名第7次
你的姓名第8次
你的姓名第9次
你的姓名第10次

看起来比for循环多了一些代码,但是跟十次输出语句比起来还是很方便的. 

do-while循环

字面意思就是,做这件事.直到.....时停止.

语法:

do{
	循环体
      }while(循环条件);

  执行逻辑:当程序遇到do关键字时,一定先执行一次
        循环体
,然后再判断循环条件,
        如果条件为false,结束循环结构,执行后续代码
        如果条件为true,再执行一次循环体,
        然后再判断条件的成立与否

示例程序:

 public static void main(String[] args) {
        int i=0;
       do {
           System.out.print(i+" ");
           i++;
       } while (i<5);
        System.out.println("已结束循环");
    }

首先进入do{}的循环体执行一次程序,执行一次i自加1,判断while内的条件,i=4执行完毕时,判断i<5的条件已经不符合,故跳出循环,执行循环后的语句.

再来一次输出自己姓名十次:

 public static void main(String[] args) {
       int i=0;
       do {
           System.out.println("第"+(i+1)+"次输出姓名");
           i++;
       }while (i<10);
    }

执行结果:

你的姓名第1次
你的姓名第2次
你的姓名第3次
你的姓名第4次
你的姓名第5次
你的姓名第6次
你的姓名第7次
你的姓名第8次
你的姓名第9次
你的姓名第10次

 所以说合理运用循环结构可以大大减少工作量.

如何选用循环结构?

三种循环结构应该如何选用?下面列举一下三者之间的区别:

while/do-while:适合不知道循环次数的逻辑
   for:适合知道循环次数的逻辑

   while/for一般先判断条件,再执行循环体
   do-while:一定先执行一次循环体,再判断条件

猜你喜欢

转载自blog.csdn.net/bujiujie8/article/details/81210003