流程控制语句分类:
1、顺序结构
2、分支结构
3、循环结构
顺序结构:顺序结构是程序中最简单最基本的流程控制,没有特定的语法结构,按照代码的先后顺序,依次执行。
分支结构:
if语句:
格式1:if(关系表达式){
语句体
}
如果关系表达式的值为true就执行语句体
如果关系表达式的值为false就不执行语句体
格式2:if(关系表达式){
语句体1;
}else{
语句体2;
}
如果关系表达式的值为true就执行语句体1,如果关系表达式的值为false就执行语句体2
案例:奇偶数
需求:任意给出一个整数,请用程序实现判断该整数是奇数还是偶数,并在控制台输出该整数是奇数还是偶数。
import java.util.Scanner;
public class IfTest01 {
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个整数:");
int number = sc.nextInt();
if(number % 2 == 0){
System.out.println(number + "是偶数");
}else{
System.out.println(number + "是奇数");
}
}
}
格式3:if(关系表达式1){
语句体1;
} else if(关系表达式2){
语句体2;
}…
else{
语句体n+1;
}
import java.util.Scanner;
public class IfDemo03{
public static void main(String[] args){
Syetem.out.println("开始");
Scanner sc = new Scanner(System.in);
System.out.println("请输入星期数:");
int week = sc.nextIn();
if(week == 1) {
System.out.println("星期一");
}else if(week == 2) {
System.out.println("星期二");
}else if(week == 2) {
System.out.println("星期三");
}else if(week == 2) {
System.out.println("星期四");
}else if(week == 2) {
System.out.println("星期五");
}else if(week == 2) {
System.out.println("星期六");
}else{
System.out.println("星期日");
}
Syestm.out.println("结束");
}
}
案例:考试奖励
需求:小明快要期末考试了,期末考试成绩对应不同的奖励,请用程序实现小明该得什么礼物,并在控制台输出
import java.util.Scanner;
public class IfTest{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
System.out.println("请输入小明的成绩:");
int score = sc.nextInt();
if(score <= 100 && score >= 95){
System.out.println("奖励自行车一辆");
}else if(score >= 90 && score <= 94) {
System.out.println("奖励去游乐场玩");
}else if(score >= 80 && score <= 89) {
System.out.println("奖励变形金刚一个");
}else{
System.out.println("下次加油我的宝!");
}
}
}
switch语句:
格式:
switch(表达式){
case值1:
语句体1;
break;
case值2:
语句体2;
break;
…
default:
语句体n+1;
break;
}
表达式:取值为byte、short、int、char,JDK5以后可以是枚举,JDK7以后可以是String。
例子:键盘录入一个数字(1-7),输出对应的星期数
import java.util.Scanner;
public class SwitchDemo{
public static void main(String[] args){
System.out.println("请输入今天的日期");
Scanner sc = new Scanner(System.in);
int today = sc.nextInt();
switch(today){
case 1:
System.out.println("今天是星期一");
break;
case 2:
System.out.println("今天是星期二");
break;
case 3:
System.out.println("今天是星期三");
break;
case 4:
System.out.println("今天是星期四");
break;
case 5:
System.out.println("今天是星期五");
break;
case 6:
System.out.println("今天是星期六");
break;
case 7:
System.out.println("今天是星期日");
break;
default:
System.out.println("您输入的日期不对哦~");
break;
}
}
}
案例:一年有十二个月,分属于春夏秋冬4个季节,键盘录入一个月份,请用程序实现判断该月份属于那个季节,并输出
import java.util.Scanner;
public class SwitchText{
public static void main(String[] args){
System.out.println("请输入一个月份:");
Scanner sc = new Scanner(System.in);
int month = sc.nextInt();
switch(month){
case 1: // 利用case穿透能更方便的书写
case 2:
case 12:
System.out.println("冬季");
break;
case 3:
case 4:
case 5:
System.out.println("春季");
break;
case 6:
case 7:
case 8:
System.out.println("夏季");
break;
case 9:
case 10:
case 11:
System.out.println("秋季");
break;
default:
System.out.println("您输入的月份有误!");
}
}
}
注意事项:在switch语句中,如果case控制的语句体后面不写break,将会出现穿透的现象,在不判断下一个case值的情况下,向下运行,知道遇到break,或者整体switch语句结束