Day08

Day08

for循环

再Java5中引入了一种主要用于数组的增强型for循环 for循环语句 是支持迭代的一种通用结构,是最有效的,最灵活的循环结构哦 for循环执行的次数是在执行前就可以确定的 语法:

for(初始化; 布尔表达式; 更新;){
//代码语句

}

快捷方法:

//100.for加回车就可以弹出for循环

语法详解如下:

package com.struct;

public class ForDemo01 {
   public static void main(String[] args) {
       
       
       int a=1;                 //初始化条件
       while (a<=100){          //条件判断
           System.out.println(a);   //循环体
           a+=2;                 //迭代(每一次循环会刷新a的值)
      }

       System.out.println("while循环结束 ");

//================================================
   
       for (int i=1; i<=100; i++){

           System.out.println(i);

      }
       System.out.println("for循环结束");

  }
   /*
   关于for循环 有以下几点说明:
   最先执行初始化步骤,可以声明一种类型,但可以初始化一个或者多个控制变量,也可以是空语句
   然后检测布尔表达式的值,如果为true,则 循环体就会被执行,
   如果为false,循环就会终止,开始执行 循环体后面的语句
   执行一次循环之后 ,更新迭代控制变量(迭代因子控制循环变量的增减)
   再次检测布尔表达式,循环执行上面的过程
   
   for(;;){}   //死循环
    */

}

计算 0到100之间所有奇数和偶数 的和:

package com.struct;

public class ForDemo02 {
   //练习:0到100之间奇数和偶数的和

   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;  //oddSum+=i;
          }else {
               evenSum=evenSum+i;  //evenSum+=i;
          }

      }
       System.out.println("奇数的和:"+oddSum);
       System.out.println("偶数的和: "+evenSum);
  }
}

注意:oddSum=oddSum+i; //oddSum+=i; println:输出之后换行 print:输出 之后不换行

练习2:用 whil或for循环输出1到1000之前可以 被5整除 的数 ,并且 每行输出三个

package com.struct;

public class ForDemo03 {
   //练习2:用 while或for循环输出1到1000之前可以 被5整除 的数 ,并且 每行输出三个
   //再次用for循环,

   public static void main(String[] args) {
       for (int i = 0; i < 1000; i++) {
           if (i%5==0){
               System.out.print(i+"\t");
          }
           if (i%(5*3)==0){
               System.out.println();//空串表示换行
               //System.out.println("\n");//再次也表示换行

          }

      }
  }

}

练习:打印九九乘法表

 

步骤: 1.先打印第一列 2.我们把固定的i再用一个循环给包起来 3.去掉重复项:i<=j 4.调整样式

(一个大问题拆分成数个小问题)

package com.struct;

public class ForDemo04 {
   public static void main(String[] args) {
       for (int j = 1; j <= 9; j++) {
           for (int i = 1; i <=j; i++) {

               System.out.print(j+"*"+i+"="+(j*i)+"\t");

          }
           System.out.println();
      }
  }
}

增强for循环(数组的时候深入了解) Java5引入的一种主要用于数组或集合的增强型for循环 Java增强for循环语法格式如下:

for(声明语句:表达式)
{
//代码句子
}

声明语句:声明新的局部变量,该变量的 类型 必须和 数组元素的类型匹配,其作用域限定在循环语句 块,其值与此事 数组元素的值 相等

表达式 :表达式是要访问 的数组名,或者返回值为数组的方法

package com.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]);
      }//提取数组中 的数字1,2,3,,4,5
       System.out.println("===============================");
       //遍历数组的元素
       for (int x:numbers) {
           System.out.println(x);
      }
  }
}
break和contiue

break在任何循环语句的 主体部分,均可用break控制循环的流程,break用于强行退出循环,不执行循环中的剩余的语句 终止循环,即直接退出循环

continue语句用在循环语句,用于终止某次循环过程,即跳过循环体中尚未执行的语句,接着 进行下一次是的执行循环的判断定 (即当满足条件是,跳过该次循环)

 

 

关于goto关键字

goto关键字很在就在设计语言中出现没尽管goto仍是Java的一个保留字,但并未在语言中得到正式使用;Java没有goto,然而,再break和continue这两个关键字上,我们可以看出一些goto的影子,带标签的break和continue 标签:是指后面跟一个冒号的标识符,李儒:label: 对Java来说唯一用到标签的地方实在循环语句之前,而在循环值钱设置 标签的唯一理由是:我们希望在其中 嵌套另一个循环,由于break和 continur关键字通常只中断当前循环,但若随便签使用,他们 就会中断 存在标签的的地方

 

标签使用如下:

package com.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+" ");
        }
    }
}

 

流程控制练习:重点理解

打印三角形:

package com.struct;

public class TextDemo {
    //打印五行三角形
    public static void main(String[] args) {

        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 @ 2020-08-20 22:31  冯柚子  阅读(98)  评论(0)    收藏  举报