2022/4/17 JavaDay09

循环结构

1. while循环

while(){}

  1. 条件正确循环一直执行

  2. 大多数情况是会让循环停止下来的,我们需要一个表达式失效的方式来结束循环

     package com.sundada.struct;
     ​
     public class WhileDemo01 {
         public static void main(String[] args) {
             //输出1~100
             int i=0;
             while (i<100){
                 i++;
                 System.out.println(i);
             }
         }
     }
 package com.sundada.struct;
 ​
 public class WhileDemo02 {
     public static void main(String[] args) {
         //死循环
         while (true){
             //等待客户端连接
             //定时检查
             //......
         }
     }
 }
 package com.sundada.struct;
 ​
 public class WhileDemo03 {
     public static void main(String[] args) {
         //计算1一直加到100
         int i=0;
         int sum=0;
         while (i<=100) {
             sum = sum + i;
             i++;
         }
         System.out.println(sum);
     }
 }

2. do...while循环

区别:

  1. while先判断后执行,do while先执行后判断

  2. do while至少执行一次

 package com.sundada.struct;
 ​
 public class DoWhileDemo02 {
     public static void main(String[] args) {
         int a=0;
         while (a<0){
             System.out.println(a);
         }
         System.out.println("========");
         do {
             System.out.println(a);
         }while (a<0);
 //        ========
 //        0
 ​
     }
 }

3. For 循环

 package com.sundada.struct;
 ​
 public class ForDemo01 {
     public static void main(String[] args) {
         int a=1;//初始化条件
         while (a<=100){//条件判断
             System.out.println(a);//循环
             a+=2;//迭代
         }
         System.out.println("while循环结束");
         for (int i = 1; i <100 ; i++) {
             System.out.println(i);
 ​
         }
         System.out.println("for循环结束");
         /*
         * 可以为空语句
         * */
     }
 }
  1. 计算0~100之间所有奇数和偶数的和

 package com.sundada.struct;
 ​
 public class ForDemo02 {
     public static void main(String[] args) {
         int oddSum=0;
         int evenSum=0;
         for (int i = 0; i < 100; i++) {
             if ( i%2!=0 ){
                 oddSum=oddSum+i;
             }else {
                 evenSum=evenSum+i;
             }
         }
         System.out.println("奇数的和:"+oddSum);
         System.out.println("偶数的和:"+evenSum);
 ​
     }
 }
  1. 用while和for循环输出1~1000之间能被5整除的数,每行输出三个

 package com.sundada.struct;
 ​
 public class ForDemo03 {
     public static void main(String[] args) {
         //用while和for循环输出1~1000之间能被5整除的数,每行输出三个
         for (int i = 0; i < 100; i++) {
             if ( i%5==0 ){
                 System.out.print(i+"\t");//这里使用print,切记
             }
             if ( i%(5*3)==0 ){
                 System.out.print("\n");//==println
             }
         }
         //println输出会换行
         //print输出不会换行
     }
 }
  1. 打印九九乘法表

循环嵌套循环

 package com.sundada.struct;
 ​
 public class ForDemo04 {
     public static void main(String[] args) {
         for (int i = 1; i <= 9; i++) {
             for (int j = 1; j <=i; j++) {
                 System.out.print(j+"*"+i+"="+(j*i)+"\t");
             }
             System.out.println();
 ​
         }
 ​
     }
 }

4. 增强For循环

for(){}

 package com.sundada.struct;
 ​
 public class ForDemo05 {
     public static void main(String[] args) {
         int[] numbers={10,20,30,40,50};//定义一个数组
 ​
         for (int i = 0; i < 5; i++) {
             System.out.println(numbers[i]);
         }
         System.out.println("===========");
         //遍历数组的元素
         //数组赋值,结合数组和集合
         for (int x:numbers){
             System.out.println(x);
         }
     }
 }

5. break,continue,goto

  1. break用于强制终止循环

 package com.sundada.struct;
 ​
 public class BreakDemo01 {
     public static void main(String[] args) {
         for (int i = 0; i < 100; i++) {
             System.out.println(i);
             if ( i==30 )break;//仅仅终止这个for循环
         }
         System.out.println("123");
     }
 }
  1. continue用于终止某次循环,接着执行下一次循环

 package com.sundada.struct;
 ​
 public class ContinueDemo {
     public static void main(String[] args) {
         int i=0;
         while (i<100){
             i++;
             if ( i%10==0 ){
                 System.out.println();
                 continue;//能被10整除则换行
             }
             System.out.print(i+"\t");
         }
         
     }
 }
  1. goto关键字

java没有goto,但可以看到他的影子,可能使用label标签来实现

 package com.sundada.struct;
 ​
 public class LabelDemo {
     public static void main(String[] args) {
         //打印101~150之间所有质数
         int count=0;
         outer:for (int i = 101; i < 150; i++) {
             for (int j = 2; j < i/2; j++) {
                 if ( i%j==0)continue outer;
 ​
             }
             System.out.print(i+" ");
         }
     }
 }

6. 练习

打印三角形

debug左上角那个蟑螂,记得设定断点

 package com.sundada.struct;
 ​
 public class TestDemo {
     public static void main(String[] args) {
         //打印三角形 5行三角形
         for (int i = 1; i <= 5; i++) {
             for (int j = 5; j >=i ; j--) {
                 System.out.print(" ");
             }
             for (int j = 1; j <=i ; j++) {
                 System.out.print("*");
             }
             for (int j = 1; j <i ; j++) {
                 System.out.print("*");
             }
             System.out.println();
 //     *
 //    ***
 //   *****
 //  *******
 // *********
         }
 ​
     }
 }
posted @ 2022-04-17 16:02  Unclesundada  阅读(19)  评论(0)    收藏  举报