java笔记
  • Java语言概述
  • 入门
    • ubuntu安装
    • window配置环境变量
    • 编写HelloWorld
    • 注释
    • 编程风格
    • 进制与字符编码
    • 键盘录入
  • java基础
    • 数据类型
    • 运算符与类型转换
    • 控制语句
      • 选择结构(if-else/swtich)
      • 循环结构(while/do-while/for)
    • 数组
      • 数组基础
      • 数组进阶
    • 面向对象
      • 基础
        • 面向过程和面向对象
        • 类与对象
        • 构造方法
        • 垃圾回收机制garbage collection
        • 关键字
      • 进阶
        • 封装
        • 继承
        • 多态
        • 抽象
        • 内部类
      • 高级特性
        • String类
        • 枚举
        • 注解
    • 异常
    • 常用类
      • 包装类
      • String相关类
      • 时间类
      • 数学类
      • File类
      • 枚举类
    • 单个字符操作(Character 类)
    • Java字符串
      • String
      • StringBuilder
      • StringBuffer
    • Java集合
    • Java 泛型
    • Java解惑
  • 附录:git
  • 附录:转义字符
  • maven
    • pom.xml
    • maven安装
  • 其他
    • BeanUtils
  • java与php语法对比
  • idea
  • 开发记录
  • ExecutorService 异步线程池
Powered by GitBook
On this page
  • if单选择结构
  • if-else双选
  • if-else if-else多选
  • switch多选

Was this helpful?

  1. java基础
  2. 控制语句

选择结构(if-else/swtich)

  • 逻辑:如果…,则…。

  • 分为:if单选择、if-else双选、if-else if-else多选、switch多选。

  • 注意:if(flag){}等同于if(flag==true){},不管flag的值是true还是false。

if单选择结构

格式:

if(布尔表达式){
  语句块
}

示例:

package com.itcode.demo1;  

/**      
 * @author: 成都码到功成学员  
 * @Description:  
 * 抛骰子游戏 
 */  
public class TestIf {  

    public static void main(String[] args) {    

         System.out.println(Math.random());// 产生一个范围在(0,1)之间的double  
         System.out.println((int)(Math.random()*6 + 1));// 产生一个范围在(0,6)  
         int a = (int) (Math.random()*6+1);    
         int b = (int) (Math.random()*6+1);    
         int c = (int) (Math.random()*6+1);    
         int d = a + b + c;    
         System.out.println(d);    
         if(d <= 5) {    
             System.out.println("手气差");    
         }    
         if(d>5 && d<11) {    
             System.out.println("手气一般");    
         }    
         if(d >= 11) {    
             System.out.println("手气还可以");    
         }    
     }  
}

建议:

if语句不写{},作用域为后面的第一条语句。 强烈建议任何时候都加上{}。

if-else双选

格式:

if(布尔表达式){
 语句块1
}else{
  语句块2
}

布尔表达式为真执行语句块1,反之执行语句块2。

示例:

package com.itcode.demo1;  
  /**      
 * @author: 成都码到功成学员  
 * @Description:  
 * 随机产生一个[0.0, 4.0)区间的半径,并求圆的面积和周长 
 */

public class TestControl2 {  

    public static void main(String[] args) {  

        Double radius = Math.random() * 4;  
        // 面积 Math.PI 3.14   
        Double area = Math.PI * Math.pow(radius , 2);  
        // 周长   
        Double perimeter = Math.PI * radius *2;  

        // 输出半径周长面积  
        System.out.println("半径:" + radius);  
        System.out.println("周长:" + perimeter);  
        System.out.println("面积:" + area);  

        if (perimeter >= area) {  
            System.out.println("周长大于等于面积");  
        } else {  
            System.out.println("周长小于面积");  
        }  
        // 使用条件元素符  
        System.out.println((perimeter >= area ? "周长大于等于面积":"周长小于面积"));  
    }  
}

效果:

if-else if-else多选

格式:

if(布尔表达式1){
        语句块1
}else if(布尔表达式2){
       语句块2
}……
else if(布尔表达式n){
       语句块n
}else{
       语句块n+1
}

按照顺序从上往下挨着去和布尔表达式1……布尔表达式n一一判断,判断到哪个表达式为true就执行相应语句块。如果一直判断到布尔表达式都为false,那就执行else里的语句块n+1。

示例:

package com.itcode.demo1;  

/**      
 * @author: 成都码到功成学员  
 * @Description:  
 * 需求:if-else if-else练习,随机生成100以内的成绩并做判断。 
 */  
public class TestControl2 {  

    public static void main(String[] args) {  

        int result = (int) (Math.random()*100);  

        System.out.println(result);  
        if (result > 80) {  
            System.out.println("优秀");  
        } else if (result > 60) {  
            System.out.println("及格");  
        } else if (result > 40) {  
            System.out.println("不及格");  
        } else if (result > 20) {  
            System.out.println("极差");  
        } else {  
            System.out.println("等死吧!没救了!");  
        }  

    }  
}

switch多选

难点,重点攻克。

格式:

switch (表达式) {
    case 值1:
        语句 1;
        break;
    case 值2:
        语句 2;
        break;    
    …… ……
    case 值n:
        语句n;
        break;
    default:
        语句
        break;
}

或

switch (表达式) {
    case 值1:
    case 值 2:
    Case 值 3:
        语句 1;
        break;
    …… ……
    default:
        语句
        break;
}

流程图

    1. 根据表达式的值从匹配的case标签出开始执行,遇到break返回或者一直执行到switch末尾。如果无任何case标签可匹配则进入的default语句(有才进入)。default语句(也可以放到前面,但可能影响效果)可以没有。break结束switch语句。

    1. case标签的值范围:byte、short、int、char、String(JDK1.7以后)、枚举常量、Byte、Short、Integer、Character。

    1. 等值/多值判断适合用switch,但是使用if-else if-else多选结构可以完全代替。Switch效率比if-else if-else高。

    1. case标签的值唯一(只能是常量),不能有多个case标签值一样。case标签值类型可以不同。

示例:

package com.itcode.demo1;  

/**      
 * @author: 成都码到功成学员  
 * @Description:  
 * 需求:switch case判断 
 */  
public class TestControl4 {  

    public static void main(String[] args) {  

        int x = (int) (Math.random()*26);  
        char c = (char) ('b' + x);  
        System.out.println(c);  
        switch (c) {  
        case 'a':  
        case 'i':  
        case 'o':  
        case 'u':  
        case 'e':  
        case 1:  
            System.out.println("元音");  
            break;  
        case 'y':  
        case 'w':  
            System.out.println("半元音");  
            break;  
        default:  
            System.out.println("辅音");  
            break;  
        }  

    }  
}
Previous控制语句Next循环结构(while/do-while/for)

Last updated 5 years ago

Was this helpful?