手记

5-Java基础语法-流程控制之循环结构

循环结构

顺序结构,从_上往下依次执行;选择结构,根据条件执行对应的内容

为什么要使用循环结构?

问题一:反复输入数字,判断输出对应是星期几。问题二:求1到100的累加和

主要内容:

while循环;do-while循环;for循环;循环嵌套;break语句;continue语句

while 循环

语法格式:

while(循环条件){
  语句;
}

如果循环体只有一条语句,大括号可以省略。为避免死循环,小括号后面不要加分号

执行流程: 将小于5的整数打印输出。

int n=1;while(n<5){  //輸出n的値
  n++;
}
  1. n的值必须先进行初始化

  2. 循环变量n的值必须被改变(死循环)

执行流程分析:

案例: 求1到5的累加和

package cn.mtianyan.flow2;public class PlusDemo {    public static void main(String[] args) {        // 求1到5的累加和
        // 1+2+3+4+5
        int n = 1;        int sum = 0; //sum存放和变量
        while (n <=5 ){
            sum = sum +n;
            n++; // 这句不能少
        }
        System.out.println("sum="+sum);
    }
}

执行过程:

求1+3+5+7+...+15

sum +=n;
n +=2; //替换n++ 可以实现跳值计算

案例: 循环输出26个英文字母,分两行输出

package cn.mtianyan.flow2;public class CharDemo {    public static void main(String[] args) {        // 循环输出26个英文小写字母,分两行输出
        char ch = 'a';        int count=1; // 13个字母时换行
        while (ch <= 'z'){
            System.out.print(ch+"");            if(count%13 == 0){
                System.out.println();
            }
            count++;
            ch++;
        }
    }
}

运行结果:

编程练习

使用while循环求1到5的平方和。效果图:

任务

  1. 定义整型变量n作为循环变量,并初始化

  2. 定义整型变量sum存放和,并初始化

  3. 使用while循环求1到5的平方和

  4. 输出平方和

package cn.mtianyan.flow2;public class LoopDemo {    public static void main(String[] args) {        int n = 1;        int sum = 0;        while (n<=5){
            sum +=(n*n);
            n++;
        }
        System.out.println("1到5的平方和为:"+sum);
    }
}

运行结果:

do-while循环

语法格式

do{
语句;
} while(循环条件);

注意事项: do-while循环至少执行一次;循环条件后的分号不能丢

int n= 1;do{  //輸出n的値
  n++;
} while(n< 5);

局部变量使用前必须被初始化

求1到5的累加和

package cn.mtianyan.flow2;public class DoWhileDemo {    public static void main(String[] args) {        // 求1到5的累加和
        int n=1;        int sum=0;        do {
            sum +=(n*n);
            n++;
        }while (n<=5);
        System.out.println("1到5的平方和为:"+sum);
    }
}

运行结果:

案例:猜字游戏

猜字游戏。要求猜一个介于1到10之间的数字。然后将猜测的值与实际值进行比较,并给出提示,以便能更接近实际值,直到猜中为止。

程序分析:

  1. 给定要猜测的数字

  2. 使用循环结构

  3. 循环进行的条件:猜测的数据和实际值不相等

  4. 循环体的内容:输入实际值,及进行判断

  5. 输出猜到的值

package cn.mtianyan.flow2;import java.util.Scanner;public class GuessDemo {    public static void main(String[] args) {        // 设置要猜的数
        int number = 6;        int guess;
        System.out.println("猜一个介于1到10之间的数");        do {
            System.out.println("请输入您猜测的数:");
            Scanner scanner = new Scanner(System.in);
            guess = scanner.nextInt();            if(guess >number){
                System.out.println("您猜大了");
            }else{
                System.out.println("您猜小了");
            }
        }while (number != guess);
        System.out.println("您猜中了!答案为: "+number);
    }
}

运行结果:

将要猜的数设为随机数:

Math.random()得到[0,1)之间的随机数

         // Math.random()*10+1 表示[0,10)+1:[1,11)之间的随机数。强制类型转换int之后就是1-10了
        int number = (int) (Math.random()*10+1);

for循环应用及局部变量作用范围

int n=1;while(n<5)  //輸出n的値
  n++;

for循环语法格式:

for(表达式1;表达式2;表达式3)
{
  语句;
}
for(int n=1;n<5;n++)
{  //输出语句;}

分号不可省略,可以省略表达式1,2,3。

使用for循环,求1到5的累加和。

package cn.mtianyan.flow2;public class ForDemo {    public static void main(String[] args) {        int sum=0;        for (int n=1;n<=5;n++){
            sum +=n;
        }        // System.out.println(n); // 局部变量的作用范围
        System.out.println("sum="+sum);
    }
}

运行结果:

int n= 1;在循环体中只执行一次

局部变量,主方法中定义的都是局部变量。局部变量只在定义它的大括号内有效!

for循环的注意事项

三个表达式都是可以省略

for(表达式1;表达式2;表达式3)
{
 语句;  
}

将10以下的整数打印输出:

package cn.mtianyan.flow2;public class ForDemo1 {    public static void main(String[] args) {        for (int i=0;i<=10;i++){
            System.out.print(i+" ");            // 循环结束时i值为11
        }
    }
}

运行结果:

省略表达式:

package cn.mtianyan.flow2;public class ForDemo1 {    public static void main(String[] args) {        int i=0;        // for(;;){
        while(true){
            System.out.print(i+" ");            // 循环结束时i值为11
            if(i>=10){                break;
            }
            i++;
        }
    }
}

循环输入数字1-10并输出,如果输入0则跳出循环:

package cn.mtianyan.flow2;import java.util.Scanner;public class InputZeroBreak {    public static void main(String[] args) {
        System.out.println("请输入你需要打印的数字,输入0时退出");
        Scanner scanner = new Scanner(System.in);        int n;        while(true){
            n = scanner.nextInt();            if(n==0){
                System.out.println("接收到0输入,已退出");                break;
            }
            System.out.println("n="+n);
        }
    }
}

运行结果:

package cn.mtianyan.flow2;public class ForExercise {    public static void main(String[] args) {        int i;        int j;        for (i=0,j=1;j<5;j+=3){
            i = i+j;
        }
        System.out.println("i="+i);
        System.out.println("j="+j);
    }
}



作者:天涯明月笙
链接:https://www.jianshu.com/p/db00ea9a00f9


0人推荐
随时随地看视频
慕课网APP