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是直接跳出这一层循环。
    • 程序调试

     

  • 相关阅读:
    洛谷P3406 海底高铁[差分 贪心]
    POJ3398Perfect Service[树形DP 树的最大独立集变形]
    POJ3928Ping pong[树状数组 仿逆序对]
    UVALive
    UVALive
    http协议进阶(二)URL与资源
    http协议进阶(一)HTTP概述
    http协议基础(十)实体首部字段
    http协议基础(九)响应首部字段
    http协议基础(八)请求首部字段
  • 原文地址:https://www.cnblogs.com/haifeima/p/12603948.html
Copyright © 2011-2022 走看看