程序流程控制和分支结构

程序流程控制:顺序结构;分支结构(if-else;switch-case);循环结构(while;do{}while();for(;;))

分支结构:

1.if-else:

    ①if(true){

        //执行代码 

        }    

    ②if(条件表达式){

        //执行代码 

        }else{

        //执行代码 

        }

    ③if(条件表达式1){

        //执行代码 

        }else if(条件表达式2){

        //执行代码 

        }else{

        //执行代码 

        }

1.条件判断之间可以嵌套。

2.如果多个条件之间是“互斥”关系,多个条件语句上下顺序可以互换。

   如果多个条件之间存在“包含“关系,要求范围小的写在范围大的上面。

3.一旦满足某个条件表达式,则进入其执行语句块执行,执行完毕,跳出当前的条件判断结构,不会执行其以下的条件结构语句。

2.switch-case:

    switch(变量):{

    case 常量1:语句;break;

    case 常量2:语句;break;

    case 常量3:语句;break;

    ....

    default:语句;break;

    }

1.根据变量的值,选择相应的case去判断,一旦满足case条件,就执行case的相应语句。直到遇到break或者程序终止。

2.default:是可选的。位置是灵活的,通常放在case语句后。

3.变量可以是哪些类型?char byte short int 枚举 String(jdk1.7及以后版本可用)

4.case 条件:其中条件只能是值,不能是取值范围。


题目:

一.从键盘获取张三的高考成绩,如果考了600及以上,就奖励一次出国旅游;

    如果考了[540,600),就奖励一台新手机;

    如果考了[480,540),就让他去打暑假工;

    如果考了不到480,就让他准备复读。

代码:

import java.util.Scanner;

public class Exer{
    public static void main(String[] args) {
        Scanner s=new Scanner(System.in);
        System.out.print("请输入张三的成绩:");
        int i=s.nextInt();
        System.out.println();
        if(i>=600){
            System.out.println("奖励出国旅游");
        }else if(i>=540){
            System.out.println("奖励一台新手机");
        }else if(i>=480){
            System.out.println("暑期打工");
        }else{
            System.out.println("准备复读");
        }
    }
}

其中else if的位置不能互换,因为如果多个条件之间存在“包含“关系,要求范围小的写在范围大的上面。如果想要互换,则要使得条件处写齐全,比如i>=480&&i<540等。

二.输入某某年某月某日,得到该日是该年的第几天。

    

import java.util.Scanner;

public class YearMonthDay{
    public static void main(String[] args) {
        Scanner s = new Scanner(System.in);
        System.out.print("请输入年份:");
        int year = s.nextInt();
        System.out.print("请输入月份:");
        int month = s.nextInt();
        System.out.print("请输入日期:");
        int day = s.nextInt();
        int sum = 0;//用来记录month月day日是year年第几天
        //使用switch-case
        switch(month){
            case 12:
                sum += 30;//30:十一月份的总天数
            case 11:
                sum += 31;
            case 10:
                sum += 30;
            case 9:
                sum += 31;
            case 8:
                sum += 31;
            case 7:
                sum += 30;
            case 6:
                sum += 31;
            case 5:
                sum += 30;
            case 4:
                sum += 31;
            case 3:{
                if((year%4==0&&year%100!=0)||year%400==0) {
                    sum += 29;
                }else{
                    sum += 28;
                }
            }
            case 2:
                sum += 31;//31:是一月份的天数
            case 1:
                sum += day;
        }
            System.out.println(year + "年" + month + "月" + day + "日是该年的第" + sum + "日");
    }
}

猜你喜欢

转载自blog.csdn.net/mycsdn1997/article/details/80266561