Java学习笔记19——流程控制语句


顺序结构:

 

选择结构: 其中,选择结构的if语句有三种格式 选择结构中的if语句: if语句第一种格式: if(关系表达式){ 如果关系表达式的结果是true,执行大括号中的语句 如果关系表达式的结果是false,就跳过不执行 }   执行流程: 首先判断关系表达式看其结果是true还是false 如果是true就执行语句体 如果是false就不执行语句体   示例: 结果为true的情况 结果为false的情况: 注意事项: 1、如果在关系表达式小括号后面加上一个分号,说明if语句结束 默认存在一个空语句体 2、括号都是成双成对出现   3、小括号中的结果必须是布尔类型(boolean类型) if语句的第二种格式: 格式: if(关系表达式){ 语句体1; }else{ 语句体2; }   执行流程: 首先判断关系表达式看其结果是true还是false 如果是true就执行语句体1 如果是false就执行语句体2   举例:上厕所案例,用键盘录入实现   分析: 1、导包 2、创建键盘录入对象 3、键盘录入信息 4、if判断输入的信息是男生还是女生 5、输出  

(String:字符串数据类型)

  if语句的第二种格式与三目运算符的关系: 三目运算符——>转成——>if语句的第二种格式

如上图所示,三目运算符和if语句的效果是一样的。都能得到结果是20

      在某些特定的情况下,他们之间是不可以相互转换的 示例1: 先看if语句 但是把以上的语句写成三目运算符就不行     三目运算符都有一个变量接收运算结果,因为后面只是输出语句,不代表任何数据类型。而且在三目运算符写上 输出语句的这种形式也是不允许的   结论1:当if-else格式中的语句体是一条输出语句的时候,不能转换成三目运算符       示例2: 若把这样的if语句转换成三目运算符时   先看if语句: 尝试转换:

结果报错

  结论2:当if-else中的语句体不是一条的时候,也不能转换成三目运算符       if语句的第三种格式: if(关系表达式1){ 语句体1; }else if(关系表达式2){ 语句体2; } ... else{ 语句体n+1; }     案例: 需求: 学生考试成绩判断: 0-60 不及格 60-80 中等 80-90 良好 90-10 0优秀 键盘录入改进 if语句的嵌套: 案例1: 键盘录入x的值,计算出y的值并输出 x和y的关系满足如下: x>=3 y=2x+1; -1<=x<3 y=2x; x<=-1 y=2x-1;   分析: 1、导包 2、创建键盘录入对象 3、用变量x接收键盘录入的int类型的数据 4、if语句判断执行不同的路径 5、输出   案例2: 键盘录入月份的值,输出对应的季节 3-5 春季 6-8 夏季 9-11 秋季 12-2 冬季   案例3: 需求:获取三个数中的最大值 此案例用键盘录入改进: 若两个数比较大小: 三目运算符实现 if条件语句实现 1、不考虑两数相等 2、考虑两数相等 结论:情况1代码不够严谨         Day5总结:   1、逻辑运算符(布尔类型的数据参与运算) &,|,&&,||,^, ! &: 有false则false |: 有true则true &&: 有false则false, 如果左边是false,右边就不执行,结果为false ||: 有true则true,如果左边是true,右边就不执行,结果为true ^: 相同为false,不同为true !: true变成false,false变成true   2、位运算符:数据参与运算的都是二进制的补码形式 &,|,^, ~,<<,>>,>>> &: 有0则0 |:有1则1 ^: 相同则0,不同则1 ~: 取反,1变成0,0变成1 <<: 补码左移,左边多出来的位丢弃,右边用0补齐 >>: 补码右移,右边多出来的位丢弃,左边最高位如果是1则用1补齐,如果是0用0补齐 >>>: 补码右移,右边多出来的位丢弃,左边无论是0还是1都用0补齐   3、三目运算符: 格式: (关系表达式)?表达式1:表达式2;   4、控制语句 1)顺序结构(按照代码的顺序,自上而下执行) 2)选择结构 A: if语句 格式: a: if(关系表达式){ 语句体; } b: if(关系表达式){ 语句体1; }else{ 语句体2; } c: if(关系表达式1){ 语句体1; }else if(关系表达式2){ 语句体2; }else if(关系表达式3){ 语句体3; } .. else{ 语句体n; }   B: switch语句