程序有三种基本结构分别是:顺序、选择和循环。为什么没有第四种结构呢?正所谓戏如人生,人生就是顺序、选择、循环。程序又何尝不是如此呢?
1、顺序结构:只要按照解决问题的顺序写出相应的语句就行,它的执行顺序是自上而下,依次执行。 2、选择结构:用于判断给定的条件,根据判断的结果判断某些条件,根据判断的结果来控制程序的流程。 3、循环结构:在程序中需要反复执行某个功能而设置的一种程序结构。它由循环体中的条件,判断继续执行某个功能还是退出循环。
顺序结构无需讨论,我们直接学习选择结构。
1.简单if语句
如果条件为真,则执行代码块。
if(条件){
代码块 //条件成立之后要执行的代码,可以是一条语句,也可以是一组语句
}
实例: 如果小明期末考试考了100分,则奖励变形金刚一个。
Scanner input = new Scanner(System.in);
System.out.print("请输入成绩");
int score = input.nextInt();
if(score == 100){
System.out.println("奖励变形金刚!");
}
2.if-else语句

if(条件){
//代码块1
}else{
//代码块2
}
实例: 如果小明期末考试考了80分以上,则奖励变形金刚一个,否则暴打一顿。
Scanner input = new Scanner(System.in);
System.out.print("请输入成绩");
int score = input.nextInt();
if(score >=80 ){
System.out.println("奖励变形金刚!");
}else{
System.out.println("暴打一顿");
}
3.多重if-else选择结构
语法:
if(条件1){
//代码块1
}else if(条件2){
//代码块2
}else{
//代码块3
}

实例: 根据考试成绩,输出考试成绩等级。
Scanner sc = new Scanner(System.in);
int score;
System.out.println("请输入考试成绩:");
score = sc.nextInt();
if (score > 100 || score < 0) {
System.out.println("考试分数非法!");
System.exit(0); //程序无条件立即退出。
}
if(score>=90 && score<=100){
System.out.println("成绩优秀");
}else if(score>=80 && score<90){
System.out.println("成绩良好");
}else if(score>=60 && score<80){
System.out.println("成绩及格");
}else{
System.out.println("不及格");
}
4.嵌套if-else语句
语法:
if(条件1){
if(条件2){
//代码块1
}else{
//代码块2
}
}else{
//代码块3
}

实例: 凤姐要招募男盆友,条件是"高富帅",身高不能低于180,银行存款不能低于100万,长的要像王力宏一样帅。 从控制台输入身高、体重和存款金额,显示结果。
int money; //存款
int height; //身高
int choice; //选择值
Scanner sc = new Scanner(System.in);
System.out.println("请输入您的身高(cm):");
height = sc.nextInt();
if(height >= 180){
//身高符号标准
System.out.println("请输入存款数量(万):");
money = sc.nextInt();
if(money>=100){
System.out.println("请输入您长的像谁?");
System.out.println("1.宋小宝 2.潘长江 3.王力宏");
choice = sc.nextInt();
if(choice == 3){
System.out.println("您就是我心中的青蛙王子");
}else{
System.out.println("丑八怪靠边站");
}
}else{
System.out.println("穷光蛋靠边站");
}
}else{
System.out.println("身高不符合,靠边站!");
}
5.switch-case语句
语法:
switch(表达式){
case 常量1:
//代码块1;
break;
case 常量2:
//代码块2;
break;
... ...
default:
//代码块n;
break;
}
1)JDK 1.7后,switch语句小括号里可以是 int、short、byte、char、枚举、String类型表达式 2)case 后必须是一个常量,数据类型与switch后表达式的值相同,通常是一个固定值,case块可以有多个,顺序可以改变,但每个case后的值必须各不相同 3)default:其他情况都不满足时执行default。default后要紧跟冒号,default跟case的顺序可以变动,但通常default块放在结尾,也可以省略。
实例: 根据考试成绩,输出考试成绩等级。使用switch-case实现。
Scanner sc = new Scanner(System.in);
int score;
System.out.println("请输入考试成绩:");
score = sc.nextInt();
if (score > 100 || score < 0) {
System.out.println("考试分数非法!");
System.exit(0);
}
int level = score / 10;
switch (level) {
case 10:
case 9:
System.out.println("成绩优秀");
break;
case 8:
System.out.println("成绩良好");
break;
case 7:
case 6:
System.out.println("成绩及格");
break;
default:
System.out.println("不及格");
break;
}
小结:
1)基本if选择结构:可以处理单一或组合条件的情况。
2)if-else选择结构:可以处理简单的条件分支情况。
3)多重if选择结构:可以处理复杂的条件分支情况。多重if选择结构适合在判断条件是范围区间的情形下使用。
4)嵌套if选择结构:这种结构一般用于复杂的流程控制中。
5)switch选择结构:当需要多重分支,使用switch选择结构可以代替多重if选择结构。但是更适合在判断条件是某些点的情形下使用。