Java学习笔记———选择结构

一:Java的基本结构

  1. 顺序结构

  2. 选择结构

  3. 循环结构

二:选择结构

1: if语句

if语句的基本格式:

  • if(判断条件){代码块}

  • if(判断条件){代码块} else {代码块}

  • if(判断条件){代码块} else if(判断条件){代码块} else {代码块}

  • if(判断条件){ if(判断条件){代码块} } else {代码块}

1.1 简单if语句

规范形式:

if (条件){

 //代码块

}

示例1:Java成绩大于80分,奖励一颗糖

 //简单的if语句
 //成绩如果大于80 奖励一颗糖
 int score = 10;
 if (score > 80){
     System.out.println("奖励一颗糖");
 }

示例2:Java的成绩大于98,而且HTML的成绩大于80,或者Java成绩等于100,HTML成绩大于70,奖励一杯奶茶

 if( (score1 > 98 && score2 > 80) || (score1 = 100 && score2 > 70 ) ){
     System.out.println("奖励一杯奶茶");
 }

1.2 if —else 语句

规范形式:

if(判断条件){

 //代码块1

}else{

 //代码块2

}

示例1:是男生就永远18岁,否则永远16岁。

 //如果是男生  就永远18岁
 //如果是女生  就永远16岁
 char c = '女生';
 if( c == '男生'){// boolean 结果是true 执行if  否则执行else
    System.out.println("永远18岁");
 }else{
    System.out.println("永远16岁");
 }

练习1:买彩票

如果体彩中了500万,我要买车,买房,去旅游。

如果没买中,那就继续买

 public class Test01 {   
     public static void main(String[] args) {        
         //创建input对象        
         Scanner input = new Scanner(System.in);        
         //键盘提示        
         System.out.println("中了500万吗?y/n");       
         //接收键盘输入        
         String answer = input.next();        
         //判断        
         if (answer.equals("y")){ //字符串的判断要使用equals方法
              
             System.out.println("买车,买房,旅游"); 
         }else {            
             System.out.println("继续买");  
         }    
     }
 }
 ​

注意:字符串的比较要用equals方法

练习2:输入4位数字的会员号的百位数字等于产生的随机数字即为幸运会员,提示恭喜中奖,否则没中奖。

 public class Test02 {
     public static void main(String[] args) {
         //创建input对象
         Scanner input = new Scanner(System.in);
         //提示键盘输入
         System.out.println("请输入4位的会员号:");
         //创建对象获取输入内容
         int member = input.nextInt();
         //提取百位数字
         int bai = member/100%10;
         //创建随机数对象
         Random r = new Random();
         int ran = r.nextInt(10);
         //判断输入数与随机数
         if (bai == ran){
             System.out.println("恭喜中奖!");
         }else {
             System.out.println("欢迎下次光临!");
         }
     }
 }
 ​

注意:Math.random();可以生成0~1之间的一个数字,含0不含1

1.3多重if语句

标准形式:

if(条件1){

   ```java

//代码块1 ```

}else if{

 //代码块2

}

....

else{

 //代码块3

}

示例1:如果成绩大于90并且是男生就送个女朋友,成绩大于90并且是女生送个男朋友,否则活该单身

 public class summarize {
     public static void main(String[] args) {
         char c = '女';
         int score = 10;
         if(score>90 && c=='男'){
             System.out.println("给送个女朋友");
         }else if(score>90 && c=='女'){
             System.out.println("给送个男朋友");
         }else{
             System.out.println("活该单身");
         }
     }
 }

1.4 嵌套if语句

标准形式:

if(条件1){

if(条件2){

 //代码块1

}else{

 //代码块2

}

} else {

   代码块3

}

示例:如果成绩大于90 如果是男生 送个女朋友, 如果是女生送个男朋友

 public class Test {
     public static void main(String[] args) {
         // 如果成绩大于90   如果是男生    如果是女生
         int score = 10;
         char c = '男';
         if(score>90){
             if(c=='男'){
                 System.out.println("给送个女朋友");
             }else{
                 System.out.println("给送个男朋友");
             }
         }
     }
 }

1.5 特殊的if语句(不推荐使用)

特殊形式:

注意:必须要求 if 或者 else 语句中只能有一条语句

if(条件)

 //代码块(只有一条语句)

else

 //代码块(只有一条语句)

2. switch语句

2.1 Switch语法规则

  1. 表达式expr的值必须是下述几种类型之一:

     byte、short、int、char、enum(枚举);java7之后可以是String。
  2. case子句中的值const 必须是常量值(或final的变量),case中的值不能是一个范围

  3. 所有case子句中的值应是不同的,否则会编译出错;

  4. default子句是可选的(不是必须的)

  5. break语句用来在执行完一个case分支后使程序跳出switch语句块;否则会继续执行下去(重点

2.2 语法格式

 switch(表达式expr){
         case const1:
             statement1;
             break;
         case const2:
             statement2;
             break;
             … …
         case constN:
             statementN;
             break;
         default:
             statement_dafault;
             break;
     } 

2.3 执行顺序

  1. 判断有没有满足 case 的情况,如果满足则执行,如果所有的 case 都不满足需求的时候 执行default中的内容

  2. break 帮助跳出switch 语句, 如果执行过程中 没有遇到break 继续向下执行直到遇到break为止

2.4练习

1:简单实现Switch语句

 public class Test {
     public static void main(String[] args) {
         int i = 1;
         switch(i){
             case 1:
                 System.out.println("Hello World!");
                 break;
             case 2:
                 System.out.println("Hello World!2");
             case 3:
                 System.out.println("Hello World3");
                 break;
             default:
                 System.out.println("Haaaa");
                 break;
         }
     }
 }

2:判断春夏秋冬

 public class summarize {
     public static void main(String[] args) {
         Scanner sc = new Scanner(System.in);
         String str = sc.next();
         switch(str){
             case "春天":
                 System.out.println("春暖花开");
                 break;
             case "夏天":
                 System.out.println("闷热");
                 break;
             case "秋天":
                 System.out.println("秋高气爽");
                 break;
             case "冬天":
                 System.out.println("滴水成冰");
                 break;
             default:
                 System.out.println("火星的");
                 break;
         }
     }
 }

3:利用Switch实现计算器操作

 public class summarize {
     public static void main(String[] args) {
         Scanner  sc = new Scanner(System.in);
         System.out.println("请输入第一个操作数:");
         int a = sc.nextInt();
         System.out.println("请输入运算符");
         String str = sc.next();
         System.out.println("请输入第二个操作数:");
         int b = sc.nextInt();
         switch(str){
             case "+":
                 System.out.println(a+"+"+b+"="+(a+b));
                 break;
             case "-":
                 System.out.println(a+"-"+b+"="+(a-b));
                 break;
             case "*":
                 System.out.println(a+""+b+"="+(a*b));
                 break;
             case "/":
                 System.out.println(a+"/"+b+"="+(a/b));
                 break;
             case "%":
                 System.out.println(a+"%"+b+"="+(a%b));
                 break;
         }
     }
 }

2.5 特殊用法:case 穿透 (重点)

case穿透:产生这种现象的原因是由于某个case语句中缺少或者漏写break语句所导致的结果

示例:打印输出指定月份的天数

 public class summarize {
     public static void main(String[] args) {
         Scanner sc = new Scanner(System.in);
 ​
         int month = sc.nextInt();
 ​
         switch(month){
 ​
             case 1:
 ​
             case 3:
 ​
             case 5:
 ​
             case 7:
 ​
             case 8:
 ​
             case 10:
 ​
             case 12:
 ​
                 System.out.println("31天");
 ​
                 break;
 ​
             case 2:
 ​
                 System.out.println("28天");
 ​
                 break;
 ​
             case 4:
 ​
             case 6:
 ​
             case 9:
 ​
             case 11:
 ​
                 System.out.println("30天");
 ​
                 break;
 ​
         }
 ​
         System.out.println("Hello World!");
 ​
     
     }
 }

3. 多重if与Switch的区别

  1. 都可以处理多分支情况

  2. 多重if适合做区间判断,switch适合等值判断

三:总结

1 程序三种基本结构

 顺序结构
 ​
 选择结构
 ​
 循环结构

2 java 选择结构:

 if
 ​
     使用形式
 ​
     if(条件){....}
 ​
     if(条件){...} else{...}
 ​
     if(条件){...} else if(条件){...}else if(条件){...} else{...}
 ​
     if(条件){   ...  if(条件){...} } else{...}
 ​
 ​
 ​
 switch :等值判断
 ​
     switch(变量表达式){
 ​
         case 常量1:
 ​
             ....
 ​
             break;
 ​
         case 常量2:
 ​
             ....
 ​
             break;
 ​
     }
 ​
 变量类型:byte short int char String 枚举
 ​
 case 常量不能重复 
 ​
 default 可以省略
 ​
 break 不要省略,如果省略会出现case穿透
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值