流程控制语句
概述:
- 流程:做事情的顺序
- 控制:按照一定的规定去做某些事情 人为的定义好一定的规定,java语句按照规定进行执行的语句。
分类:
- 顺序语句:自上而下自左往右执行 。
- 分支语句: 语句中提前准备好了很多分支代码,执行的时候只会执行其中的一个分支的语句。(判断语句、 选择语句)
- 循环语句
使用固定的格式去重复的做一件相同或相似的事情的语句 。(for循环、while循环、do…while循环)
判断语句(选择语句)
概述:
属于分支语句的一种,根据条件的结果执行对应的分支代码的语句。
分类:
- 单条件判断
- 多条件判断
- 单条件判断
语法格式:
1. if语句:
格式:
if(条件){
条件成立要执行的代码段
} ;
执行流程:
1、判断条件是否成立 ,
成立:执行花括号里面的代码段 ;
不成立:直接结束判断语句 。
代码示例:
晚上某些同学上了网站,输入年龄值 确定是否能进入。
import java.util.Scanner;
public class IfDemo {
public static void main(String[] args) {
// 创建Scanner的对象
Scanner sc = new Scanner(System.in);
// 友好提示
System.out.println("请请输入您的年龄值:");
int age = sc.nextInt();
// 开始决定是否能进入
if (age > 18) {
System.out.println("欢迎您来到男人的天堂,请注意身 体!!!!!");
}
}
}
2、if…else语句 格式:
格式:
if(条件){
条件成立执行的代码段
}else{
条件不成立执行的代码段
} ;
执行流程:
判断条件是否成立,
成立:执行第一个花括号的代码段 ;
不成立:执行第二个花括号的代码段 。
代码示例:
晚上某些同学上了网站,输入年龄值, 确定是否能进入。
import java.util.Scanner;
public class IfDemo {
public static void main(String[] args) {
// 创建Scanner的对象
Scanner sc = new Scanner(System.in);
// 友好提示
System.out.println("请请输入您的年龄值:");
int age = sc.nextInt();
// 开始决定是否能进入
// if...else语句
if (age > 18) {
System.out.println("欢迎您来到男人的天堂,请注意身 体!!!!!");
} else {
System.out.println("小弟弟回家在玩两年,养好身体再来 吧");
}
}
}
3、多条件判断语句
概述:
对多个条件进行判断,根据成立条件的结果执行对应的分支代码。
语法格式:
if(条件1){
条件1成立要执行的代码段
}else if(条件2){
条件2成立要执行的代码段
}
…
else if(条件n){
条件n成立要执行的代码段
}else{
所有条件都不成立执行的代码段
}
最后的if可以省略【所有条件不成立执行】
执行流程:
判断条件1是否成立,成立:执行条件1成立的代码段, 结束判断语句 ;不成立:判断条件2是否成立; 成立:执行条件2成立的代码段, 结束判断语句 不成立: 依次的去判断下一个条件是否成立 ;成立:执行条件n成立的代码段 ,结束判断语句, 不成立: 执行else中的代码段。
代码示例:
相亲女相亲现场的心理变化【根据男方薪资多少进行调整】
import java.util.Scanner;
public class IfMoreDemo {
public static void main(String[] args) {
// 女孩子询问薪资
System.out.println("帅锅你一个月多少收入?");
// 男孩子回答【使用键盘录入】
Scanner sc = new Scanner(System.in);
int salary = sc.nextInt();
// 得到答案 看看是不是符合自己内心标准
if (salary > 8000 && salary < 15000) {
System.out.println("我去补个妆");
}else if (salary >= 15000 && salary < 20000) {
System.out.println("先加个微信吧");
}else if (salary >= 20000 && salary < 25000) {
System.out.println("今天有部电影很好看咱们去看看吧");
}else if (salary >= 25000 && salary < 30000) {
System.out.println("咱们去旅游吧");
} else {
System.out.println("你这么不上进吗?");
}
}
}
4、 switch语句
概述:
根据一个具体的值去和已经准备好的代码段项去选择和值匹配的代码段的语句。
固定语法格式:
switch(表达式){
case 常量值: 代码段
break;
…
case 常量值: 代码段
break;
default :
代码段
break;
}
格式解释:
- switch: java表示选择意思。
- 表达式:他的值就是用来做选择的具体的值【标准值】。
- case : 选项 后面的书写准备好的代码段 。
- 常量:区分case的标记 同时去和标准值进行比对的值。
- 代码段:准备好要执行的事情。
- break: 打断意思 ,选择语句中就是结束选择语句的意思。
- default:默认的意思 做选择时,没有选择到对应的选项,要执行的代码段 。
执行流程:
1、首先计算出表达式的结果值【得到标准值。
2、拿着标准值自上而下的和case的常量值进行匹配 ;
匹配上:执行对应case后面的代码段,遇到break,结束选择语句。
没有匹配到:执行default项的代码段。
代码示例 :
import java.util.Scanner;
public class SwitchDemo {
public static void main(String[] args) {
System.out.println("请选择您要取款的金额:");
Scanner sc = new Scanner(System.in);
int money = sc.nextInt();
switch (money) {
case 100:
System.out.println("哔哩一下一张");
break;
case 500:
System.out.println("哔哩哔哩出来5张");
break;
case 1000:
System.out.println("哗啦一下10张");
break;
case 1500:
System.out.println("哗啦哗啦一塔");
break;
case 2000:
System.out.println("哗哗的20张");
break;
case 5000:
System.out.println("哒哒哒的一捆");
break;
default:
System.out.println("对不起你的余额不足");
break;
}
}
}
case的穿透性:
case项代码中没有break语句,会导致选择语句不能直接结束,而继续执行下一项的代码段的现象,如果多个case项的代码段是一样的代码,可以使用穿透性来完成,提升代码的复用性。
switch语句注意事项
-
switch语句的表达式结果的类型有要求:
jdk1.5前:必须是 byte short char int
jdk1.5时:增加了枚举【enum】
jdk1.7时:增加了String -
case后面只能跟常量
-
default项: 可以写在witch内任意位置,但是在没有匹配case项时永远最后一个执行 建议:写在最后。