if分支结构

基础语法

单分支结构

  1. if(判断条件){
  2. 满足条件,执行该代码,不满足则跳过该代码
  3. }

多分支结构

  1. if(判断条件){
  2. 满足条件,执行代码块1
  3. }else{
  4. 不满足条件,执行代码块2
  5. }

嵌套分支结构

  1. if(判断条件1){
  2. 满足判断条件1,执行代码块1
  3. }else if(判断条件2){
  4. 满足判断条件2,执行代码块2
  5. }else if(判断条件3){
  6. 满足判断条件3,执行代码块3
  7. }
  8. ···
  9. ···
  10. ···
  11. else{
  12. 以上都不满足,执行该代码
  13. }

案例

打折案例

  1. package cn.tedu.basic;
  2. import java.util.Scanner;
  3. /*
  4. * 练习分支结构打折案例
  5. */
  6. //接收用户输入的原价。满1000打9折;满2000打8折;满5000打5折
  7. public class TestDiscount {
  8. public static void main(String[] args) {
  9. System.out.print("请输入商品原价:");
  10. double price = new Scanner(System.in).nextDouble();
  11. double count = price;
  12. if(price >= 10000) {
  13. count = price * 0.1;
  14. }else if(price>=5000) {
  15. count = price * 0.5;
  16. }else if(price >=2000) {
  17. count = price * 0.9;
  18. }else if(price >= 1000) {
  19. count = price * 0.95;
  20. }
  21. System.out.println("打折后价格为:" + count);
  22. }
  23. }

成绩分段案例

  1. package cn.tedu.basic;
  2. import java.util.Scanner;
  3. /*
  4. * 判断分数档位
  5. */
  6. public class TestScore {
  7. public static void main(String[] args) {
  8. System.out.print("请输入学生分数:");
  9. float score = new Scanner(System.in).nextFloat();
  10. if(score < 0 && score > 100) {
  11. System.out.println("输入成绩不合法!");
  12. }else {
  13. if(score >= 90) {
  14. System.out.println("该学生成绩为优秀。");
  15. }else if(score >= 80 && score <90) {
  16. System.out.println("该学生成绩为良好。");
  17. }else if(score >= 70 && score < 80) {
  18. System.out.println("该学生成绩为中等。");
  19. }else if(score >= 60 && score <70) {
  20. System.out.println("该学生成绩为及格。");
  21. }else {
  22. System.out.println("该学生成绩为不及格。");
  23. }
  24. }
  25. }
  26. }

switch选择结构

基础语法

  1. switch(expression){
  2. case value :
  3. //语句
  4. break; //可选
  5. case value :
  6. //语句
  7. break; //可选
  8. //你可以有任意数量的case语句
  9. default : //可选
  10. //语句;保底操作
  11. }
  • 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,判断是否继续输出,或是跳出判断。

案例

数字匹配案例

  1. package cn.tedu.basic;
  2. /*本类用于练习switch结构*/
  3. public class TestSwitch {
  4. //1.创建程序的入口函数main
  5. public static void main(String[] args) {
  6. //2.定义一个变量
  7. int a = 19;
  8. //3.完成switch结构的测试
  9. switch(a) {
  10. case 1 : System.out.println(1);break;
  11. case 2 : System.out.println(2);break;
  12. case 3 : System.out.println(3);break;
  13. case 4 : System.out.println(4);break;
  14. case 5 : System.out.println(5);break;
  15. default : System.out.println(0);
  16. }
  17. }
  18. }

总结:

  • 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(“吃馒头咸菜”); } }

}

```