百木园-与人分享,
就是让自己快乐。

Java基础学习:流程控制03

Java基础学习:流程控制03

  • 循环结构:

    • 相同的事情执行多次,就是循环结构;

       

    • while循环:

      • while循环是最基本的循环,它的结构为:

        while(布尔表达式){
           //循环内容
        }

        //1,只要布尔表达式为true,循环就会一直执行下去
        //2,我们大多数情况是让循环停止下来的,我们需要一个让表达式失效的方式来结束循环
        //3,少部分情况需要循环一直执行,比如服务器的请求响应监听等
        //4,循环条件一直为true就会造成死循环,我们正常的业务编程中应该尽量避免死循环,会影响程序性能
        //5,思考:1+2+3....+100=?
      • 代码案例:

        public class WhileDemo01 {
           public static void main(String[] args) {
               //输出1-100
               int i=0;

               while (i<100){
                   i++;
                   System.out.println(i);
              }
          }
        }
      • 代码案例2:重点

        public class WhileDemo03 {
           public static void main(String[] args) {
               //计算:1+2+3+...+100

               int i=0;
               int sum=0;
               while (i<=100){
                   sum=sum+i;
                   i++;//一定要记得改变布尔表达式的值,使循环停止
              }
               System.out.println(sum);//5050

          }
        }
    • do..while循环:

      • 对于while语句而言,如果不满足条件,则不能进入循环;但有的时候我们需要即使不满足条件,也至少执行一次;

      • do..while循环和while循环相似,不同的是,do..while循环至少会执行一次;

        do{
           //代码语句
           
        }while(布尔表达式);
      • while和do..while的区别:

        • while先判断后执行,do while是先执行后判断;

        • do while总是保证循环体至少执行一次,这是他们的主要区别;

      • 代码案例:

        public class DoWhileDemo01 {
           public static void main(String[] args) {
               //计算1+2+3....+100

               int i=0;
               int sum=0;

               do{
                   //循环体
                   sum=sum+i;
                   i++;//改变布尔值,让循环停下来;
              }while (i<=100);
               System.out.println(sum);
          }
        }
      • 代码:while和do..while的区别

        public class DoWhileDemo02 {
           public static void main(String[] args) {
               //对比while和do while
               int a=0;
               while (a>0){
                   System.out.println(a);
              }

               System.out.println(\"===============\");//分割线

               do{
                   System.out.println(a);
              }while (a>0);

          }
        }
    • for循环:

      • 虽然所有循环结构都可以用while或者do while表示,但是Java提供了另一种语句:for 循环;使得循环结构更加简单;

      • for循环语句是支持迭代的一种通用结构,是最有效,最灵活的循环结构;

      • for循环执行次数是在执行前就确定的;

        //语法:
        for(初始化;布尔表达式;更新){
           //循环代码块
        }
      • 注意:

        public class ForDemo01 {
           public static void main(String[] args) {
               int a=1;//初始化条件

               while(a<=100){//条件判断
                   //循环体
                   System.out.println(a);
                   a+=2;//迭代
              }
               System.out.println(\"呵呵呵呵\");
               //初始化条件//条件判断//迭代
               for(int i=1;i<=100;i++){
                   System.out.println(i);
              }
               System.out.println(\"for循环结束\");
               
               
               //IDEA快捷键:100.for 回车
               for (int i = 0; i < 100; i++) {
                   
              }

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

              }
          }
        }

         

      • 代码例子:计算0到100之间的奇数和偶数的和

        public class ForDemo02 {
           public static void main(String[] args) {
               //0-100之间的奇数和偶数
               
               int oddSum=0;
               int evenSum=0;

               for (int i = 0; i <= 100; i++) {
                   if(i%2!=0){//模运算,不等于0,就是奇数
                       evenSum+=i;//注意+=的学习
                  }else{
                       oddSum+=i;
                  }
              }
               System.out.println(\"奇数和:\"+evenSum);
               System.out.println(\"偶数和:\"+oddSum);
          }
        }
      • 代码例子:用while或for循环输出1-1000之间能被5整除的数,并且每行输出3个

        public class ForDemo03 {
           public static void main(String[] args) {
               //用while或for循环输出1-1000之间能被5整除的数,并且每行输出3个

               //while循环
               int i=1;
               int j=0;//计数用的变量
               while(i<1000){
                   if(i%5==0){//能被5整除
                       if(j<3){
                          // System.out.print(i+\" \");
                           System.out.print(i+\" \\t\");// \\t转义字符
                           j++;
                      }else{
                           System.out.println();//不打印,只是为了换行
                           j=0;
                      }
                  }
                   i++;
              }


               //for循环实现:k,k1
               for (int k = 1,k1=0; k <= 1000; k++) {
                   if(k%5==0){
                       if(k1<3){
                           System.out.print(k+\" \");
                           k1++;
                      }else {
                           System.out.println();
                           k1=0;//切记,换行后,要改变条件变量;//同时学会DEBUG调试
                      }
                  }
              }
               System.out.println(\"程序结束\");


               //优化代码:\\t 制表符   \\n换行   %模运算
               for (int i1 = 1; i1 <= 1000; i1++) {
                   //模运算
                   if(i1%5==0){
                       System.out.print(i1+\"\\t\");
                  }
                   if(i1%(5*3)==0){//换行:每行3个,最大就是i1*3
                       System.out.print(\"\\n\");
                  }
              }
          }

        }
      • 代码例子:打印九九乘法表:

        public class ForDemo04 {
           public static void main(String[] args) {
               //打印九九乘法表
               /**
                * 思路:
                * 1,先画出来大概模型:
                * 第一行:1*1=1
                * 第二行:2*1=2 2*2=4
                * 第三行:3*1=3 3*2=6 3*3=9
                *
                * 2,按行打印:2个变量:所有要定义2个变量:i控制行,j控制列
                * 3,行再变,列也再变,所有需要循环嵌套
                */
               for (int i = 1; i < 10; i++) {
                   for(int j=1;j<=i;j++){
                       //打印
                       System.out.print(i+\"*\"+j+\"=\"+i*j+\"\\t\");//怎么换行
                       if(j==i){
                           //换行
                           System.out.print(\"\\n\");
                      }
                  }
              }
          }
        }

         

    • 在Java5中引入了一种主要用于数组的增强型for循环:

      • 主要是用来遍历数组和对象的;

      • Java5引入了一种主要用于数组或集合的增强型for循环;

        //语法
        for(声明语句:表达式){
           //循环代码块;
        }
      • 声明语句:声明新的局部变量,该变量的类型必须和数组元素的类型匹配,其作用域限定在循环代码块,其值与此时数组元素的值相等

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

        代码例子:

        public class ForDemo06 {
           public static void main(String[] args) {
               //增强型For循环:主要用于遍历数组或对象

               int[] numbers={10,20,30,40};//定义了一个数组

               for(int i=0;i<4;i++){
                   System.out.println(numbers[i]);
              }
               System.out.println(\"----------------------\");

               //遍历数组的元素
               for(int x:numbers){
                   System.out.println(x);
              }

          }
        }

         

      •  

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


来源:https://www.cnblogs.com/xiangcai0522/p/15971234.html
本站部分图文来源于网络,如有侵权请联系删除。

未经允许不得转载:百木园 » Java基础学习:流程控制03

相关推荐

  • 暂无文章