JAVA学习第十二天:while循环与for循环

While循环

顺序结构只能执行一次,而循环结构可以执行多次或无数次。

While循环

格式

while(布尔表达式){

当布尔表达式成立时所要执行的命令

}

注意

若布尔表达式一直成立,则循环一直进行。而大多数情况下我们需要循环停止,因此括号内的布尔表达式需要让循环在合适的时候停止。

输出1~100:

public class WhileDemo01 {
   public static void main(String[] args) {
       int a = 0;
       while (a<100){
           a++;
           System.out.println(a);
      }
  }

}

计算1+2+3+......+100:

public class WhileDemo02 {
   public static void main(String[] args) {
       int a = 0;
       int sum = 0;
       while (a<=100){
           sum = sum +a;
           a++;
           System.out.println(sum);
      }

  }
}

do while循环

while循环先判断布尔表达式是否成立,再决定是否执行命令,而do while循环是先执行一遍命令,再去判断布尔表达式是否成立以及是否继续执行。即do while 循环至少会执行一次。

int a = 0;

while(a<0){

System.out.println(a);

a++

}

此时由于a=0而不小于零,所以布尔表达式不成立,所以后面的命令并不会被执行;

int a = 0;

do{

System.out.println(a)

}while(a<0);

此时运行程序会输出一个0,即先输出了a,再让a=a+1,接着才判断布尔表达式是否成立。

for循环(重要)

所有的循环都可以用while或者do while实现,但java中的for循环可以使一些复杂的循环变得更加简单。for循环是支持迭代的一种通用循环,是最有效、最灵活的循环结构。

格式

for(定义一个或几个变量;限制条件;循环内容){

执行的命令

}

定义变量:定义需要的数字变量或字符;

限制条件:使循环在合适的次数后停止;

循环内容:在限制条件成立的情况下和“执行的命令”同样进行循环的语句。

1.分别计算0到100之间奇数和偶数的和:

public class ForDemo01 {
   public static void main(String[] args) {
       int oddsum = 0;
       int evensum = 0;
       for (int a=0;a<=100;a++ ){
           if (a%2!=0){
               oddsum+=a;
          }else{
               evensum+=a;
          }
      }
       System.out.println(oddsum);
       System.out.println(evensum);
  }
}

主要是运用取余运算判断奇数和偶数。

2.用while循环和for循环输出0到5000内能被5整除的数,且每行输出三个。

public class ForDemo03 {
   public static void main(String[] args) {
       for (int i = 0; i <= 5000; i++) {
           if (i%5==0){
               System.out.print(i+"\t");
          }
           if (i%(5*3)==0){
               System.out.println();
          }
      }



  }
}

特别注意:System.out.println( )输出一个内容后就会分行;

System.out.print( )持续在一行内输出所有内容。

本例题要求每三个数一行,则在输出三个能被5整除的数之后,即输出一个能被15整除的数之后分行,此处分行采用直接使用System.out.println( )输出一个空白行,也可以使用System.out.print( \n ).

3.输出九九乘法表:(while和for循环嵌套)

public class SwitchDemo03 {
   public static void main(String[] args) {
       int a = 9;
       while(a>0){
           for (int b = 1;b<=a;b++){
               System.out.print(b+"*"+a+"="+a*b+"\t");
          }a--;
           System.out.println();
      }
  }
}

或者:(while和for循环嵌套)

public class SwitchDemo02 {
   public static void main(String[] args) {
       int a = 1;
       while(a<10){
       for (int b = 1;b<=a;b++){
           System.out.print(a+"*"+b+"="+a*b+"\t");
      }a++;
           System.out.println();
      }

  }
}

或者:(for循环和for循环嵌套)

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

当然,打印此乘法表也有一些笨方法,比如直接输出,但推荐遇到此类存在较多循环的问题时多使用循环结构,可以大大提高效率。

posted @ 2020-12-07 22:05  lxh8  阅读(99)  评论(0)    收藏  举报