程序流程控制:顺序结构;分支结构(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 + "日"); } }