zoukankan      html  css  js  c++  java
  • 【5】Java流程控制之循环结构

    一、流程控制概述

    三大流程控制语句:顺序、选择、循环
    1)顺序:从上往下依次执行
    2)选择:if ,if-else,多重 if结构,嵌套if,switch,根据条件执行对应的内容
    3)循环结构:
    -while循环
    -do-while循环
    -for循环
    -break语句
    -continue语句

    二、while循环

    1)如果循环体只有一条语句,大括号可以省略 2)为避免死循环,小括号后面不要加分号 ,否则只执行分号前面的内容 3)n必须先进行初始化:例如 int n=1 4)循环变量n的值必须被改变:例如n++ 5)不满足条件(while后的条件)终止执行
     
    2)语法格式:
    while(循环条件[true]或[false])
    { 
    语句; 
    }

    3)执行流程:

    int n=1;
    while(n<5){
    System.out.println(n);
    n++;
    }

    4)案例:求一到五的累加和

    public class mooctest {
        public static void main(String[] args) {
            //求一到五的累加和
            //1+2+3+4+5
            int n=1;
            int sum=0;//sum存放和的变量
            while(n<=5) {
                sum=sum+n;
                n++;
            }
            System.out.println("1到5的累加和"+sum);
        }
    }
    //1到5的累加和15
    View Code

    5)案例:痪输出26个英文字母,分两行输出

    public class mooctest {
        public static void main(String[] args) {
            // 循环输出26个英文小写字母,分两行输出
            char ch = 'a';
            int count = 1;// 控制换行
            while (ch <= 'z'){ //小括号后面不能有;分号,会死循环
                System.out.println(ch + " ");
                if (count % 13 == 0)//换行操作:第13个字符输完后,写一个换行符
                    System.out.println();//println是换行,print不换行
                count++;
                ch++;
            }
        }
    }
    View Code

    三、do-while循环

    1)语法格式:
    do {
    语句;
    }while(循环条件);

    2)注意事项:

      ①do-while循环至少执行一次,因为循环条件在后面
      ②循环条件后的分号不能丢
     
    3)执行流程:

    int n = 1;
    do
    {
    //输出n的值
        n++;
    }while(n<5);
    4)案例:求1-5的累加和
    public class mooctest {
        public static void main(String[] args) {
        //求1-5的累加和
            int n=1;
            int sum=0;
            do {
                sum+=n;
                n++;
            }while(n<=5);
            System.out.println("sum="+sum);
        }
    }
    View Code

     5)案例:猜数字

    import java.util.Scanner;
    public class mooctest {
        public static void main(String[] args) {
        //设置要猜的数
            int num=(int)(Math.random()*100+1);//随机生成1到100之间的随机数
            int guess;
            System.out.println("猜一个介于1到100之间的数");
            do {
                System.out.println("请输入您猜的数:");
                Scanner sc=new Scanner(System.in);
                guess=sc.nextInt();
                if(guess>num) {
                    System.out.println("太大");
    
                }else if(guess<num){
                    System.out.println("太小");
                }
            }while(num!=guess);
            System.out.println("您猜中了!答案为"+num);
        }
    }
    //(Math.random(),表示[0.1),也就是包括0,不包括1之间的随机数
    //Math.random()*100,表示[0,100)
    //Math.random()*100+1,表示[1,101),也就是1到100之间的数
    //1到5的累加和15
    View Code

    四、for循环 

    ps:主方法里的变量叫做局部变量。在for循环中定义的变量,出了循环就不能用了
    1)语法

    for(表达式1;表达式2;表达式3)
    {
    语句;
    }
    //表达式1(对循环条件初始化,只执行一次,第一执行 )
    //表达式2(循环条件,第二执行)
    //表达式3(循环条件进行改变,爱在执行循环体之后,最后执行)
    2)语法格式

    public static void main(String[] args) {
        int sum=0;
        for(int n=1;n<=5;n++) { //这里的n就是局部变量
           sum=sum+n;
       }
       System.out.println(sum);
    }
    3)for循环的注意事项
     
    - 表达式1的初始化工作可以挪到循环体外 - 表达式2删掉后,则默认循环条件一直成立 (一直循环)可以在循环体 里面加 if break条件 - 表达式3的工作可以挪到循环体内

    4)案例:将十以下的整数打印输出
    public class mooctest {
        public static void main(String[] args) {
            //将十以下的整数打印输出
            int i=1;
            //for(;;) 什么都不输入,三个;相当于下面的语句
            while (true){
                System.out.println(i+" ");
                if(i==10)break;
                i++;
            }
        }
    }
    View Code

    5)案例:随意输入数字,当输入0时程序停止
    import java.util.Scanner;
    public class mooctest {
        public static void main(String[] args) {
            Scanner sc=new Scanner(System.in);
            int n;
            while(true) {
                System.out.print("请从键盘输入数据:");
                n=sc.nextInt();
                if(n==0)break;
                System.out.println(n);
            }
        }
    }
    View Code

     五、嵌套循环

    1)执行顺序:从上往下依次执行,遇到循环之后执行循环体的内容,直到不满足条件再去执行循环体外面的的内容
    2)格式

    while(循环条件)
    {
    .....
    while(循环条件){
    ...
    }
    }
    3)案例:打印4行4列的星号

    public class mooctest {
        public static void main(String[] args) {
            //使用嵌套while循环输出10行10列的星号
            int m=1;//外重循环的变量
            int n=1;//内重循环的变量
            System.out.println("输出4行4列的星号");
            //外重循环控制输出几行
            while (m<=4) {
                n=1;
                //内重循环控制每行输出几个星号
                while(n<=m) {
                    System.out.println("*");
                    n++;
                }
                System.out.println();
                m++;
            }
        }
    }
    View Code
    4)案例:1到4阶乘的累加和(求1!+2!+3!+4!)
    提示4!=1*2*3*4
    public class demo {
        public static void main(String[] args) {
            long s=1,sum=0;
            for(int i=1;i<=4;i++) {
                s=1;
                for(int j=1;j<=i;j++) {
                    s=s*j;//s存放阶乘计算的结果
                }
                sum=sum+s;
            }
            System.out.println("1!+2!+3!+4!="+sum);
        }
    }
    View Code

     六、break语句和continue语句

    1)break语句
    • break 语句可以结束当前循环的执行;
    • 执行完 break 语句后,循环体中位于 break 语句后面的语句就不会被执行;
    • 在多重循环中,break 语句只向外跳一层。
    • break语句可以用在循环结构和switch语句当中 
    2)案例
    public class demo {
        public static void main(String[] args) {
            int k=0;
            for(int i=1;i<5;i++) {
                for(int j=1;j<5;j++) {
                    k=i+j;
                    if(j==3)break;
                }
            }
            System.out.println("k="+k);
        }
    }
    View Code

    代码分析:

     

    3)continue语句
    • 只能用在循环结构中,不能用在switch语句当中
    • continue语句可以结束当前循环的执行,但是要继续下一次循环的执行 
    4)案例
    public class demo {
        public static void main(){
            int sum =0;
            for(int i=1;i<=9;i++){
                if(i%2==0) continue;
                sum = sum +i;
            }
            System.out.println("sum ="+ sum);
        }
    }
    View Code

    代码分析:

     

    七、初步调试debug 

    1)调试的步骤:
    第一步:设置断点
    第二步:执行调试(右键debug运行,或者快捷键,或者菜单栏小虫子图标)
    第三步:进行单步调试(step over,不进入函数单步调试)
     
    2)其他:
    step into,进入函数,单步调试
    Resume:一直执行到下个断点处
    step out:从当前的位置,直接运行到下一个断点处
    注意! 当断点设置在循环里面时,按step out时,并不会跳到到下一个断点处, 而是会运行一次循环,然后回到断点处,知道循环条件不达成时,才会跳到下一个断点处。

    八、本节课总结

    1.确定循环的次数,用for循环。
    2.程序至少要执行一次,建议用do while循环
    3.其他用while循环。
    • 流程控制语句:顺序、选择、循环
    • 选择语句:if-else,多重、嵌套,switch结构
    • 循环结构:while、do while、for循环、嵌套循环、break和continue
    • break和continue语句的区别:break和continue都是跳出当前循环,但continue会继续下一次循环,break是直接跳出这一层循环。
    • 程序调试

     

  • 相关阅读:
    洛谷—— P3353 在你窗外闪耀的星星
    洛谷—— P1238 走迷宫
    洛谷—— P1262 间谍网络
    9.8——模拟赛
    洛谷—— P1189 SEARCH
    算法
    May 22nd 2017 Week 21st Monday
    May 21st 2017 Week 21st Sunday
    May 20th 2017 Week 20th Saturday
    May 19th 2017 Week 20th Friday
  • 原文地址:https://www.cnblogs.com/haifeima/p/12603948.html
Copyright © 2011-2022 走看看