• 07java基础知识


    循环结构

    while 循环

    do...while循环

    for循环

    01 while循环

    while(布尔表达式){

    ​ //执行内容

    }

    public class whileDemo {
        public static void main(String[] args) {
            int i=0;
            int sum=0;
            System.out.println("Calculating the 1+2+3+...+100=?");
            while(i<=100){
                sum+=i;
                i++;
            }
            System.out.println("1+2+3+...+100="+sum);
        }
    }
    
    

    • 避免死循环
    • 有些情况需要循环一直执行,比如服务器的请求响应监听

    02do...while循环

    do{
    	//执行内容
    }while(布尔表达式);
    

    do...while循环和while基本相同,但是有一点重要区别:

    • while是先判断布尔表达式是否成立,然后决定是否执行,而do...while是先执行{...}然后再判断布尔表达式是否成立。也就是说,while循环条件如果不成立就不能进入循环,而do...while先进入循环把里面的代码执行一次再判断。

    下面我写个代码测试一下是否如此:

    public class whileDemo {
        public static void main(String[] args) {
            int i=0;
            String s="No";
            System.out.println("Does the coding will be executive?");
            do{
               s="Yes";
            }while(i>=100);
            System.out.println(s);
        }
    }
    

    显然i不可能大于100,但是s仍然被赋值为Yes。执行结果如下:

    03for循环

    下面几个练习题:

    • 练习一:
    public class forDemo {
        public static void main(String[] args) {
            int i = 0;
            int sum_ji = 0;
            int sum_ou = 0;
            for (i = 1; i <= 100; i++) {//快捷生成for循环:输入100.for回车即可自动生成for(int i=1;i<=100;i++)
                if (i % 2 == 0) {
                    sum_ji += i;
                } else
                    sum_ou += i;
            }
            System.out.println("Odd sum is " + sum_ji);
            System.out.println("Even number sum is " + sum_ou);
        }
    }
    

    • 练习二:

      public class forDemo {
          public static void main(String[] args) {
              System.out.println("The numbers of 1-1000 can be divide by 5 are:");
              for(int i=1;i<=1000;i++){
                  if(i%5==0){
                      System.out.print(i+" ");
                      if(i%3==0)
      //                    System.out.print("
      ");//这里也发现了带不带ln的区别,带换行,不带不换行
                          System.out.println();
                  }
              }
          }
      }
      

    篇幅关系,只截取这么多了

    • 练习三:
    public class forDemo {
        public static void main(String[] args) {
            for(int i=1;i<=9;i++){
                for(int j=1;j<=9;j++){
                    if(i<=j)
                    {
                        System.out.println(i+"*"+j+"="+i*j);
                        if(j==9)
                            System.out.println();//if语句的执行内容只有一行,可以不用{}
                    }
                }
            }
        }
    }
    

    篇幅关系,只截取这么多,乘法表的所有内容都可以输出,但是排版不对,暂时还没想到解决办法

    • 幸运的是练习三我想到了解决办法:
    public class forDemo {
        public static void main(String[] args) {
            for(int i=1;i<=9;i++){//快捷生成for循环:输入9.for回车即可自动生成for(int i=1;i<=9;i++)
                for(int j=1;j<=i;j++) {
                        System.out.print(j+"*"+i+"="+i*j+"	");
                }
                System.out.println();
            }
    
        }
    }
    

    04增强for循环

    public class for_proDemo {
        public static void main(String[] args) {
            int[] num={1,2,3,4,5};
            for (int i = 0; i < 5; i++) {//5.for
                System.out.println(num[i]);
            }
            System.out.println("--------------------");
            for(int x:num){//这种形式的for循环自动遍历一维数组num的所有索引
                System.out.println(x);
            }
        }
    }
    
    

    05break&continue

    public class breakDemo {
        public static void main(String[] args) {
            for (int i = 0; i < 5; i++) {
                System.out.println(i);
                if(i==3)
                    break;
            }
            System.out.println("fada is pretty handsome.");
        }
    }
    

    由这个例子可见,满足条件时break语句跳出循环,注意此处只是跳出来它所在的上一层循环,并不是程序终止运行,你看 You are pretty handsome.

    public class continueDemo {
        public static void main(String[] args) {
            for (int i = 0; i < 10; i++) {
                if(i%2==0)
                    continue;
                System.out.print(i+"	");//"	"是Tab
        }
    }
    

    06goto关键字

    public class LabelDemo {
        public static void main(String[] args) {
            //求100-150之间所有的质数
            //质数是指大于1的自然数中,除了1和它本身意外不再有其他因数的自然数
            int count=0;
            label:for (int i = 100; i < 150; i++) {
                for(int j=2;j<i;j++){
                    if(i%j==0)
                        continue label;
                }
                System.out.print(i+" ");
            }
        }
    }
    

    自学java,请多多指教!
  • 相关阅读:
    DS博客作业01--日期抽象数据类型设计与实现
    C语言-第6次作业
    C语言-第5次作业
    C语言--第4次作业
    DS博客作业08--课程总结
    DS博客作业07--查找
    DS博客作业06--图
    DS博客作业05--树
    DS博客作业03--栈和队列
    DS作业01--日期抽象数据类型设计与实现
  • 原文地址:https://www.cnblogs.com/fanfada/p/13732891.html
Copyright © 2020-2023  润新知