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
 }
 

 





原文地址:https://www.cnblogs.com/xuxaut-558/p/10044075.html