java基础_循环结构

循环结构的概念

什么是循环结构?循环就是反复的重复去做一件事。

为什么需要有循环?因为生活中有很多要重复去做的事情,对应的计算机语言中也有相应的机制去描述。

循环的要素

  1. 循环的初始值;比如:sum=0;n=1;
  2. 循环的控制条件;比如:n<=3;
  3. 循环中反复执行的代码;比如:接收输入,求和。
  4. 过渡到下一次循环;比如:n++;

while循环

while循环的语法结构:

int n =1;//循环的初始化
while(控制循环的条件){
执行循环的语句;
n++;//过渡到下一次
}

while循环执行过程:

案例:计算3个人的平均分(while)。

public class Demo {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        double sum = 0 ;
        int n = 1;
        while (n<=3){
            System.out.println("请输入第"+n+"个人的成绩");
            sum += sc.nextDouble();
            n++;
        }
        System.out.println("三个人的平均分是:"+sum/3);
    }
}

结果:

案例:实现100以内的自然数求和(do while)。

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

结果:



 
 

案例:实现100以内的自然数求和(while)。

public class Demo {
    public static void main(String[] args) {
        int n =1;//初始值
        int sum=0;//初始和
        while (n<=100){
            sum +=n;
            n++;
        }
        System.out.println("100以内和="+sum);
    }
}

结果:


while和do while:

  1. 基本用法差不多,只不过while是先判断后执行,do while是先执行后判断。
  2. do while后面的分号";"一定不要忘记。
  3. do while和while就大多数是结果是完全一样的,只有在极端情况下才有差异,比如:条件一开始就不成立,那么while一次都不会执行;而do whil执行一次,并且输出执行一次后的结果。

for循环

for循环的语法结构

for(int n=1;n<3;n++){
反复循环的语句;
}

for循环的执行过程:

案例:求100以内自然数求和(for)。

public class Demo {
    public static void main(String[] args) {
        int sum = 0;
        for (int i = 1;i<=100;i++){
            sum += i;
        }
        System.out.println(sum);
    }
}

结果:


比较while、do while、for:

  • 其实这三个循环都没有本质上的差异,只是其表现形式不同
  • for循环相对于其他两个的优点是简洁
  • for循环括号里跟的表达式是什么含义:比如;for(int n=1;n<=3;n++),可以理解为:在[1,3]的范围内,步长为1,执行循环语句。
for循环要在已知循环次数的情况下使用,循环次数未知的情况下使用while和do while。
循环辅助语句
break:结束当前的switch语句或者循环结构;

continue:结束当前循环,"继续"下次循环;

在什么时候循环使用辅助语句

break和continue,可以使程序的可读性更强,也就是说,在执行程序时,可以把先不符合条件的先排除,然后再去处理符合条件的情况。(一般都是循环主体)。一般一个循环有两个判断条件的时候,但是,如果执行语句,会复杂很多,那么这个程序的可读性就差。就如下:

For(……){
If(判断条件1){
If(判断条件2){
	执行语句;假设有很多行语句。(循环主体代码)。
}else{
	错误提示2;
}
}else{
		错误提示1;
}
}

换一种思路:实现的结果不会改变,但是可读性就更强了,如下:

For(……){
	If(!判断条件1){
		错误提示1;
		Continue;
}
	If(!判断条件2){
		错误提示2;
		Continue;
}
执行语句。(循环主体语句)
}

break和continue的联系和区别

在循环时只要遇到break和continue,他们后边的代码都不会执行了,只是,break直接结束了循环结构,而continue只是结束了当次循环,下一次循环还会”继续“,直到不满足循环条件时,循环结束。如图:

案例:判断输入的数是不是素数?

public class Demo {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入一个数:");
        int num = sc.nextInt();
        int num2 = (int)Math.sqrt(num);//加上这句话有什么用?提高代码时效,及运行速度。
        boolean flag = true;//是否为素数的标记。
        for (int i =2;i<=num2;i++){
            if (num>=2){
                if (num%i==0){
                    flag=false;
                    break;
                }
            }
        }
        System.out.printf("%d %s 素数",num,flag?"是":"不是");
    }
}

结果:


猜你喜欢

转载自blog.csdn.net/chen_anan/article/details/80938144