if结构

if( 条件表达式 ){
    // 语句块
}
  • 执行原理:当条件表达式的结果为true的时候才执行花括号{}里面的代码块
    • 当执行完花括号{}里面的所有语句的时候,程序出{}继续往后执行剩下的代码
  • 当条件表达式的结果为false的时候,他跳过{}中的代码块,继续执行{}后面的语句。

流程图

  • 它是解决一项问题既定方式的图形化表示【用画图的方式来表达解决问题的步骤】
  • 带倒角的矩形:表示程序的 开始和结束
  • 平行四边形:表示程序的 输入
  • 菱形:表示程序的 条件判断
  • 矩形:表示程序的 执行代码块
  • 带圆圈的链接线:表示程序的 执行步骤的汇总
  • 链接线:表示程序的 走向

复杂条件的if结构

  • 在if条件判断里使用逻辑运算符实现对多个条件判断的连接来完成复杂条件的判断
if((表达式1) && (表达式2)){
}
if((表达式1) || (表达式2)){
}
if(!(表达式1)){
}
if((表达式1&&表达式2) && (表达式3&&表达式4)){
}

运算符的优先级

  • 最高的优先级()
  • 最低优先级:=
  • 优先级:! > 算术运算符 > 关系运算符 > && ||
  • 重点: 复杂条件使用括号提高优先级

if-else 结构

if(条件表达式){
    代码块1
} else {
    代码块2
}
  • 执行原理
  1. 当条件表达式结果为true的时候执行代码块1
  2. 当条件表达式结果为false的时候执行else{}里的代码块2
  3. if{}块和else{}块里的代码只能有一个被跑到,完了就继续执行后续代码。
    1. 当if块或者else块里只有一条语句的时候,{}是可以省略的,但是建议不要省略【是的代码的结构和层次清晰】。

多重if结构

if (条件表达式1){
    代码块1 
} else if (条件表达式2){
    代码块2
} else if(条件表达式3){
    代码块3
} else {
    代码块4
}
  • 执行原理
  1. 当条件表达式1的判断结果为true的时候执行代码块1,执行之后其他的判断不跑了,继续之后多重if块后面的代码
  2. 当条件表达式1的判断结果位false的时候还要继续判断条件表达式2,如果条件表达式2的结果为true则执行代码块2,否则继续条件表达式3的判断,依次类推!!
  3. 注意最后的else{}可以省略,但即使是空的,不建议省略!!
  4. 每次执行完一个{}里的代码块,其他{}里的代码块就不跑了
  5. 多重if处理的时候要注意条件表达式的顺序,不能随便乱排。【注意逻辑的思想】

嵌套if结构

if结构里边再嵌套if,可以是【if或者if-else或者if-else if-else的任意组合】 用来处理多条件多层次的筛选

if(){
    if(){

    }else{

    } 
}else{
}

Math.random()产生随机数

  • 生成 [0,1) 随机数
  • 方法
    1. 先确定范围[a,b]
    2. 同时减去a 得到范围[0,b-a]
    3. 在a的基础上调用Math.random()方法 乘以[b-a+1]的数,例如:a + (int)(Math.random()*(b-a+1));
    4. 得到[a,b]区间的数

switch机构

  • 判断条件与常量值进行等值比较,如果匹配就执行它下面的代码,直到碰到break语句才跳出switch{}块继续后面的代码
  • 如果判断条件与所有项的常量值都不相等,就执行fefault下的代码块,直到碰到break语句才跳出switch{}块继续后面代码
switch(判断条件){
    case 常量值1:
    语句
    break;

    case 常量值2:
    语句
    break;

    case 常量值3:
    语句
    break;

    default:
    语句
}
  • defailt语句一般放在结构的末尾,虽然他的顺序可以随便调
  • default语句一般也可以省略的,但是不建议省略【为了保持结构的完整性】
  • default 语句后记得跟上break
    • 判断条件里的数据类型可以有:byte short int char String 枚举

枚举类型

  • 定义方式
public enum 枚举类型{
    常量值1,
    常量值2,
    常量值3,
    常量值4, // 最后一个逗号可以省略
}
  • 定义枚举变量
枚举类型 枚举变量名 = 变量值1 ~ 变量值4

注意:枚举变量只能取自定义的常量值

switch与多重if的区别

  • 相同点:都是用来处理多分枝结构
  • 不同点:
    • switch只能用来处理等值条件
    • 多重if没有switch选择结构的限制,特别适合某个变量处于某个连续区间时的情况

总结:

  • if选择结构,包括以下形式
    • 基本if选择结构:可以处理单一或组合条件的情况
    • if-else选择结构:选择处理简单的条件分支情况
    • 多重if选择结构:可以处理分段的条件分枝情况
    • 嵌套if选择结构:可以处理复杂的条件分枝情况
  • switch选择结构
    • 多重分枝并且条件判断是等值判断的情况