if分支结构
基础语法
单分支结构
if(判断条件){
满足条件,执行该代码,不满足则跳过该代码
}
多分支结构
if(判断条件){
满足条件,执行代码块1
}else{
不满足条件,执行代码块2
}
嵌套分支结构
if(判断条件1){
满足判断条件1,执行代码块1
}else if(判断条件2){
满足判断条件2,执行代码块2
}else if(判断条件3){
满足判断条件3,执行代码块3
}
···
···
···
else{
以上都不满足,执行该代码
}
案例
打折案例
package cn.tedu.basic;
import java.util.Scanner;
/*
* 练习分支结构打折案例
*/
//接收用户输入的原价。满1000打9折;满2000打8折;满5000打5折
public class TestDiscount {
public static void main(String[] args) {
System.out.print("请输入商品原价:");
double price = new Scanner(System.in).nextDouble();
double count = price;
if(price >= 10000) {
count = price * 0.1;
}else if(price>=5000) {
count = price * 0.5;
}else if(price >=2000) {
count = price * 0.9;
}else if(price >= 1000) {
count = price * 0.95;
}
System.out.println("打折后价格为:" + count);
}
}
成绩分段案例
package cn.tedu.basic;
import java.util.Scanner;
/*
* 判断分数档位
*/
public class TestScore {
public static void main(String[] args) {
System.out.print("请输入学生分数:");
float score = new Scanner(System.in).nextFloat();
if(score < 0 && score > 100) {
System.out.println("输入成绩不合法!");
}else {
if(score >= 90) {
System.out.println("该学生成绩为优秀。");
}else if(score >= 80 && score <90) {
System.out.println("该学生成绩为良好。");
}else if(score >= 70 && score < 80) {
System.out.println("该学生成绩为中等。");
}else if(score >= 60 && score <70) {
System.out.println("该学生成绩为及格。");
}else {
System.out.println("该学生成绩为不及格。");
}
}
}
}
switch选择结构
基础语法
switch(expression){
case value :
//语句
break; //可选
case value :
//语句
break; //可选
//你可以有任意数量的case语句
default : //可选
//语句;保底操作
}
- switch 语句中的变量类型可以是: byte、short、int 、 char、 String 类型,case 标签必须为字符串常量或字面量。
- switch 语句可以拥有多个 case 语句。每个 case 后面跟一个要比较的值和冒号。
- case 语句中的值的数据类型必须与变量的数据类型相同,而且只能是常量或者字面常量。
- 当变量的值与 case 语句的值相等时,那么 case 语句之后的语句开始执行,直到 break 语句出现才会跳出 switch 语句。
- 当遇到 break 语句时,switch 语句终止。程序跳转到 switch 语句后面的语句执行。case 语句不必须要包含 break 语句。如果没有 break 语句出现,程序会继续执行下一条 case 语句,直到出现 break 语句。
- switch 语句可以包含一个 default 分支,该分支一般是 switch 语句的最后一个分支(可以在任何位置,但建议在最后一个)。default 在没有 case 语句的值和变量值相等的时候执行。default 分支不需要 break 语句。
switch case 执行时,一定会先进行匹配,匹配成功返回当前 case 的值,再根据是否有 break,判断是否继续输出,或是跳出判断。
案例
数字匹配案例
package cn.tedu.basic;
/*本类用于练习switch结构*/
public class TestSwitch {
//1.创建程序的入口函数main
public static void main(String[] args) {
//2.定义一个变量
int a = 19;
//3.完成switch结构的测试
switch(a) {
case 1 : System.out.println(1);break;
case 2 : System.out.println(2);break;
case 3 : System.out.println(3);break;
case 4 : System.out.println(4);break;
case 5 : System.out.println(5);break;
default : System.out.println(0);
}
}
}
总结:
- 1.变量a的类型byte short char int String。
- 2.会拿着变量a的值依次与case后的值做比较,如果不加break,会向后穿透所有case,包括default。
- 3.如果设置了default“保底选项”,并且没有任何case匹配到的话,就执行default。
- 4.break与default是可选项,根据具体业务来决定加不加。
字符串类型的switch结构
```java package cn.tedu.basic;
public class TestSwitch2 { public static void main(String[] args) { String s = “5”; switch(s) { 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(“吃馒头咸菜”); } }
}
```