zoukankan      html  css  js  c++  java
  • JAVA入门到精通-第4讲-流程控制

     如果没有加break,会全部都打印出来;
     break 跳出,跳出switch
     JAVA中名字不能重复;

     这两个是一样的写法;

     
     这两种写法都是可以的;

     编译不过去;
     case后面是bool类型;
     这里的a是int型,会报错;

     条件表达式数据类型,应该和case常量表达式一致,否则就会报错。


     编译不过去;
     enum枚举类型

     合法;

    执行1,要走2,判断一下,走4,输出。
    4-3:改变i的值,0变成1,;
    找2,判断;为真,接着执行第4句;为假,退出;
     

    最后,i的值为10,10不小于10,退出;

     
     
    do-while循环不管咋样都会执行一次;
     
     镂空的金字塔;中间部分打印第一个*和最后一个*,其他的空格;
     
     

    *****:switch中的可用数据类型主要是:允许byte,short,int,char,enum

     

    1、单分支控制作业:请大家看个案例[demo22.java]:

    编写一个程序,可以输入人的年龄,如果该同学的年龄大于18岁,则输出“你年龄大于18,要为自己的行为负责!

     

    x
    1
    /*
    2
      作者:徐升
    3
      功能:单分支控制作业
    4
      日期:2017/9/1
    5
    */
    6
    import java.io.*; //载入IO流包
    7
    public class Demo22{
    8
        public static void main(String []args) {
    9
        try {
    10
        //输入流,从键盘接受数
    11
        InputStreamReader isr=new InputStreamReader(System.in);
    12
        BufferedReader br=new BufferedReader(isr);
    13
        
    14
        //给出提示
    15
        System.out.println("请输出你的年龄");
    16
        //从控制台读取一行数据
    17
        String a1=br.readLine();
    18
        
    19
        //把String转为float
    20
        float num1=Float.parseFloat(a1);
    21
        
    22
        if(num1>18) {System.out.println("你的年龄大于18,要为自己的行为负
    23
    24
    责!");}
    25
        if(num1==18) {System.out.println("你的年龄是18岁");}
    26
        if(num1<18) {System.out.println("你的年龄小于18岁");}
    27
        
    28
        }catch(Exception e) {
    29
            e.printStackTrace();
    30
        }
    31
        }
    32
    }

     

    2、双分支控制作业:请大家看个案例[demo33.java]:

    编写一个程序,可以输入人的年龄,如果该同志的年龄大于18岁,则输出“你年龄大于18岁,要对自己的行为负责!”否则,输出“你的年龄不大这次放过你了”

     

    26
     
    1
    import java.io.*;//加载IO流包
    2
    public class Demo33{
    3
        public static void main(String []args){
    4
        try{
    5
        //输入流,从键盘接收数
    6
        InputStreamReader isr=new InputStreamReader(System.in);
    7
        BufferedReader br=new BufferedReader(isr);
    8
        
    9
        //给出提示
    10
        System.out.println("请输入你的年龄");
    11
        //从控制台读取一行数据
    12
        String a1=br.readLine();
    13
    14
        //把String转为float
    15
        float num1=Float.parseFloat(a1);
    16
    17
        if(num1>=18){System.out.println("你年龄大于18岁,要对自己的行为负责!");}
    18
        else{System.out.println("你的年龄不大这次放过你了");}   
    19
    20
        }catch(Exception e){ 
    21
           e.printStackTrace();
    22
        }
    23
        }
    24
    25
    26
    }

     

    3、多分支控制作业:请大家看个案例[demo44.java]

    编写一个程序,可以输入人的年龄,如果该同志的年龄大于18岁,则输出“你年龄大于18,要对自己的行业负责,送入监狱”。如果该同志的年龄大于10岁并且小于等于18,则输出“你的年龄也不小了,把你送少管所”。其它情况,则输出“小孩子,下次注意”。

      

    x
     
    1
    /* 作者:徐升
    2
       功能:多分支控制作业
    3
       日期:2017.9.1
    4
    */
    5
    import java.io.*;//加载IO流包
    6
    public class Demo44{
    7
        public static void main(String []args){
    8
        try{
    9
        //输入流,从键盘接收数
    10
        InputStreamReader isr=new InputStreamReader(System.in);
    11
        BufferedReader br=new BufferedReader(isr);
    12
        
    13
        //给出提示
    14
        System.out.println("请输入你的年龄");
    15
        //从控制台读取一行数据
    16
        String a1=br.readLine();
    17
        //把String转为float
    18
        float num1=Float.parseFloat(a1);
    19
    20
        if(num1>=18){System.out.println("你年龄大于18岁,要对自己的行为负责,送入监狱");}
    21
        else if(num1>10 && num1<=18)
    22
                 {System.out.println("你的年龄也不小了,把你送少管所");}
    23
        else 
    24
                 {System.out.println("小孩子,下次注意");}  
    25
        }catch(Exception e){ 
    26
           e.printStackTrace();
    27
        }
    28
        }
    29
    }

     

     

    4、多分支控制作业:请大家看个案例[demo55.java]

    请编写一个程序,该程序可以接收一个字符,比如:a,b,c,d,e,f,g

    a表示星期一,b表示星期二...根据用户的输入显示相应的信息,要求使用switch语句完成。

     

    x
    1
    /* 作者:徐升
    2
       功能:switch语句控制
    3
       日期:2017.9.1
    4
    */
    5
    import java.io.*;    //加载IO流包
    6
    public class Demo55 {
    7
        public static void main(String []args){
    8
        try{
    9
        //输入流,从键盘接收数
    10
        InputStreamReader isr=new InputStreamReader(System.in);
    11
        BufferedReader br=new BufferedReader(isr);
    12
        
    13
        //给出提示
    14
        System.out.println("请输入一个字符:");
    15
        //从控制台读取一行数据
    16
        String t=br.readLine();
    17
    18
        switch(t)                 //switch()多分支控制语句实现跳转
    19
        {
    20
                case "a":
    21
            System.out.println("星期一");
    22
            break;
    23
            case "b":
    24
                    System.out.println("星期二");
    25
            break;
    26
            case "c":
    27
            System.out.println("星期三");
    28
            break;
    29
            case "d":
    30
            System.out.println("星期四");
    31
            break;
    32
            case "e":
    33
            System.out.println("星期五");
    34
            break;
    35
            case "f":
    36
            System.out.println("星期六");
    37
            break;
    38
            case "g":
    39
                    System.out.println("星期日");
    40
            break;
    41
        default:
    42
            System.out.println("珍惜时间,但行好事,莫问前程!");
    43
    44
           }
    45
        }catch(Exception e){
    46
            e.printStackTrace();
    47
            }    
    48
        }
    49
    }

     
    41
     
    1
    import java.io.*;
    2
    public class Demo55{
    3
        public static void main(String []args){
    4
            try{
    5
            //输入流,从键盘接收数
    6
            InputStreamReader isr=new InputStreamReader(System.in);
    7
            BufferedReader br=new BufferedReader(isr);
    8
            System.out.println("请输入1,2,3,4,5,6,7");
    9
            String a1=br.readLine();
    10
            int c=Integer.decode(a1);
    11
            switch(c){
    12
            case 1:
    13
                System.out.println("星期一");
    14
                break;
    15
            case 2:
    16
                System.out.println("星期二");
    17
                break;
    18
            case 3:
    19
                System.out.println("星期三");
    20
                break;
    21
            case 4:
    22
                System.out.println("星期四");
    23
                break;
    24
            case 5:
    25
                System.out.println("星期五");
    26
                break;
    27
            case 6:
    28
                System.out.println("星期六");
    29
                break;
    30
            case 7:
    31
                System.out.println("星期日");
    32
                break;
    33
            default:
    34
                System.out.println("输入错误");
    35
                break;
    36
            }
    37
            }catch(Exception e){
    38
              e.printStackTrace();
    39
            }
    40
        }
    41
    }

    5、多分支控制作业:请大家看个案例[demo66.java]

    对比switchif语句在执行分支语句的区别。

    25
     
    1
    import java.io.*;
    2
    public class Demo66{
    3
        public static void main(String []args){
    4
        try{
    5
        //输入流,从键盘接收数
    6
        InputStreamReader isr=new InputStreamReader(System.in);
    7
        BufferedReader br=new BufferedReader(isr);
    8
        //给出提示
    9
        System.out.println("请输入0至100的数:");
    10
        //从控制台读取一行数据
    11
        String a1=br.readLine();
    12
        //把String转为int
    13
        int a=Integer.decode(a1);
    14
        if (a<=100 && a>=90){System.out.println("优");}
    15
        else if (a<90 && a>=80){System.out.println("良");}
    16
        else if (a<80 && a>=70){System.out.println("中");}
    17
        else if (a<70 && a>=60){System.out.println("及格");}
    18
        else if (a<60 && a>=0){System.out.println("不及格");}
    19
        else {System.out.println("input error");}
    20
        }catch(Exception e){
    21
          e.printStackTrace();
    22
        }
    23
        
    24
        }
    25
    }

    ***switch分支语句不支持判断类型即boolean类型,switch只支持byte,short,int,char,enum等数据类型

    -------------------------------------------------------------------------------


     

    循环控制

    听其名而知其意,就是让你的代码可以循环的执行。

    循环控制有三种

    1for循环 语法:

        for(循环初值;循环条件;步长){

            语句;//循环体

        }

     

    2while循环 语法:

        while(循环条件){

            语句;//循环体

        }

    特别说明:while循环是先判断在执行语句。

     

    3do while循环 语法:

        do{

            语句;//循环体

        }while(循环条件);

    特别说明:do while循环是先执行,再判断。

     

    请大家看个案例[demo77-88-99.java]:

    编写一个程序,可以打印10句“你好,我是刘德华同志!”。请大家想想怎么做?

    1for循环

    2
     
    1
    for (int a=0;a<10;a++)
    2
    {System.out.println("你好,我是刘德华同志!");}

    2while循环

    4
     
    1
    int i=0;
    2
    while(i<10)
    3
    {System.out.println("你好,我是刘德华同志!");
    4
    i++;}

    3do while循环

    7
     
    1
    int i=0;
    2
    do
    3
    {
    4
    System.out.println("你好,我是刘德华同志!");
    5
    i++;
    6
    }
    7
    while(i<10)

     

    请编写一个程序,可以接收一个整数,表示层数,打印出金字塔一半。[demo100.java]

    x
     
    1
    ***把一个复杂的问是先拆解成简单问题
    2
    //三角形[Demo100.java]
    3
    public class Demo100{
    4
        public static void main(String []args){
    5
            //死去活来法-->打四次
    6
            int lay=4;
    7
            //表示有多少层
    8
            for(int i=1;i<=lay;i++){
    9
                //打印*
    10
                for(int j=1;j<=i;j++){
    11
                    System.out.print("*"); 
    12
                }
    13
                System.out.println();//换行
    14
            }
    15
        }
    16
    }
     

    -------------------------------------------------------------------------------

    19
     
    1
    //金字塔[Demo101.java]
    2
    public class Demo101{
    3
        public static void main(String []args){
    4
            int lay=10;//表示有多少层
    5
            for(int i=1;i<=lay;i++){
    6
                //找出规律
    7
                //1->3 2->2 3->1 4->0找出空格
    8
                for(int k=1;k<=lay-i;k++){
    9
                System.out.print(" ");
    10
                }
    11
                //打印*
    12
                //1->1 2->3 3->5 4->7找出星的规律
    13
                for(int j=1;j<=(i-1)*2+1;j++){
    14
                    System.out.print("*");
    15
                }
    16
                System.out.println();//换行
    17
            }
    18
        }
    19
    }
     
     

    -------------------------------------------------------------------------------

    29
     
    1
    //镂空金字塔[Demo102.java]
    2
    public class Demo102{
    3
        public static void main(String []args){
    4
            int lay=10;//表示有多少层
    5
            for(int i=1;i<=lay;i++){
    6
                //找出规律
    7
                //1->3 2->2 3->1 4->0找出空格
    8
                for(int k=1;k<=lay-i;k++){
    9
                System.out.print(" ");
    10
                }
    11
                //打印*
    12
                //1->1 2->3 3->5 4->7找出星的规律
    13
                for(int j=1;j<=(i-1)*2+1;j++){
    14
                    //判断该层是否是顶层或者是底层
    15
                    if(i==1||i==lay){
    16
                    System.out.print("*");
    17
                    }else{
    18
                        //如果是第一个*
    19
                        if(j==1||j==(i-1)*2+1){
    20
                        System.out.print("*");
    21
                        }else{
    22
                            System.out.print(" ");
    23
                        }
    24
                    }
    25
                }
    26
                System.out.println();//换行
    27
            }
    28
        }
    29
    }
     

    -------------------------------------------------------------------------------

    32
     
    1
    //空心菱形[Demo103.java]
    2
    public class Demo103{
    3
        public static void main(String []args){
    4
            int lay=4;//菱形上半部行数
    5
            for(int i=1;i<=lay-1;i++){ //判断循环上半部分
    6
                for(int k=1;k<=lay-i;k++){ //找行内*号前输出空格
    7
                    System.out.print(" ");
    8
                }
    9
                for(int j=1;j<=(i-1)*2+1;j++){ //找行内输出星的位置
    10
                    if(j==1||j==(i-1)*2+1){  //判断行最小长度和最大长度,并在最小长度和最大长度上输出*号,行内输入出空格。
    11
                        System.out.print("*");
    12
                    }else{
    13
                        System.out.print(" ");
    14
                     }
    15
                }
    16
                System.out.println(); //换行
    17
            }
    18
            for(int i=1;i<=lay;i++){  //判断循环菱形下半部分
    19
                for(int k=1;k<=i-1;k++){ //判断循环找*号前要输出空格处
    20
                    System.out.print(" ");
    21
                }
    22
                for(int j=1;j<=(lay-i)*2+1;j++){ //判断循环行长度
    23
                    if(j==1||j==(lay-i)*2+1){ //判断行最小长度和最大长度,并在最小长度和最大长度上输出*号,行内输入出空格。
    24
                        System.out.print("*");
    25
                    }else{
    26
                        System.out.print(" ");
    27
                     }
    28
                }
    29
                System.out.println();//输出换行
    30
            }
    31
        }
    32
    }
     

    -------------------------------------------------------------------------------

     
    1
    //实心菱形[Demo104.java]
    2
    public class Demo104{
    3
        public static void main(String []args){
    4
            int lay=4;//菱形上半部行数
    5
            for(int i=1;i<=lay-1;i++){ //判断循环上半部分
    6
                for(int k=1;k<=lay-i;k++){ //找行内*号前输出空格
    7
                    System.out.print(" ");
    8
                }
    9
                for(int j=1;j<=(i-1)*2+1;j++){ //找行内输出星的位置
    10
                    System.out.print("*");
    11
                }
    12
                System.out.println(); //换行
    13
            }
    14
            for(int i=1;i<=lay;i++){  //判断循环菱形下半部分
    15
                for(int k=1;k<=i-1;k++){ //判断循环找*号前要输出空格处
    16
                    System.out.print(" ");
    17
                }
    18
                for(int j=1;j<=(lay-i)*2+1;j++){ //判断循环行长度
    19
                    System.out.print("*");
    20
                }
    21
                System.out.println();//输出换行
    22
            }
    23
        }
    24
    }
    25
     }
     

     





  • 相关阅读:
    new、delete和malloc、free
    重写与重载
    面向对象三个基本特征
    Js零散知识点笔记
    ES6 笔记
    js 单例模式笔记
    关于闭包的见解
    DOM笔记
    浏览器差异
    JS高级程序设计 笔记
  • 原文地址:https://www.cnblogs.com/xuxaut-558/p/10044075.html
Copyright © 2011-2022 走看看