条件结构

简单if、else语句属于条件分支语句(用于只有两种情况的时候)
if (cash >= 500) {
    System.out.println("买别墅");
} else {
    System.out.println("买公寓");
}
==》》》》》》》》》》》》》》》》》》》》
多重if、else语句用于多种情况的时候。
if (cash > 500) {
    System.out.println("买在内环");
} else if (cash > 300) {
    System.out.println("买在中环");
} else if (cash > 200) {
    System.out.println("买在外环");
} else {
    System.out.println("努力赚钱");
}
switch、case语句
    switch (表达式) {
        case 常量1:
            语句1;
            break;
        case 常量2:
            语句2;
            break;
        default:
            语句3;
    }
注意:
    a.switch是用来匹配常量的,能匹配的常量类型有byte、short、int、char、String、枚举类型
    b.表达式的值为整型数,不能为long型;
    c.break语句是可以省略的,一旦省略了,程序就会一直往下执行,直到碰到break为止或switch结束为止.通常是需要的;
    d.default可选,可以放在任何位置,一般推荐放在最后;
    e.case后面所列出的常量不能重复,case的顺序是可以颠倒的;
    f.switch和多重if、else语句比较
        switch语句适合做等值判断,不适合做区间判断。做等值判断的时候语法更简洁直观。多重if、else语句功能比switch更全面.
=============================================================================================================
万年历案例
public class Demo {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.println("****万年历****");
int year; // 保存输入的年
int month; // 保存输入的月
boolean isRn; // 闰年为true,否则为false
int days = 0; // 保存指定月的天数
int totalDays = 0; // 保存总的天数差

System.out.println("请输入年:");
year = input.nextInt();
System.out.println("请输入月:");
month = input.nextInt();

if ((year % 400 == 0) || (year % 4 == 0 && year % 100 != 0)) {
isRn = true;
System.out.println(year + "是闰年");
} else {
isRn = false;
System.out.println(year + "不是闰年");
}

// 计算年的总天数
for (int i = 1900; i < year; i++) {
if ((i % 400 == 0)||(i % 4 == 0 && i % 100 != 0)) {
totalDays += 366;
} else {
totalDays += 365;
}
}

// 计算输入月份之前的天数和
for (int i = 1; i <= month; i++) {
switch (i) {
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
days = 31;
break;
case 2:
if (isRn) {
days = 29;
} else {
days = 28;
}
case 4:
case 6:
case 9:
case 11:
days = 30;
break;
default:
System.err.println("输入月份有误");
break;
}
if (i != month) {
totalDays += days;
}


// 求出是星期几,其实就是前面的\t的个数
int beforeDays;
beforeDays = totalDays % 7 - 1;
if (beforeDays == 7) {
// 代表是星期天,0个\t
beforeDays = 0;
}
System.out.println("星期天\t星期一\t星期二\t星期三\t星期四\t星期五\t星期六");
for (int i = 0; i < beforeDays; i++) {
System.out.print("\t");
}
for (int i = 1; i <= days; i++) {
System.out.print(i + "\t");
if ((i + beforeDays) % 7 == 0) {
System.out.println();
}
}
input.close();
}
}
结果:
****万年历****
请输入年:
2018
请输入月:
4
2018不是闰年

1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30  


break语法及使用
break语句可以用来改变程序的控制流,在switch/case语句中用于跳出swicth代码块,在循环语句中,用于跳出当前循环而执行后面的语句。
continue语法及使用
continue语句用于跳过循环体中剩余语句而提前执行下一次循环.

你可能感兴趣的:(条件结构)