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("\n");//这里也发现了带不带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+"\t");
            }
            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+"\t");//"\t"是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+" ");
        }
    }
}

猜你喜欢

转载自blog.csdn.net/fada_is_in_the_way/article/details/109303060