循环
分支循环——if单分支
if(条件表达式 这个表达式的结果是布尔值 要么是true 要么是false){
//如果上边表达式返回结果是true 那么执行{}中的代码
//如果上边表达式返回结果是false 那么不执行{}中的代码
//依次执行 每个都走一遍
//if后面的()中的条件 要按照自己的需求尽量完善
//{}可以省略不写 一旦省略if只负责后面的一句话 不建议
}
分支循环——if多分支
If ( ) {
} else if( ){
} else if ( ) {
} …
else {
}
else: 隐藏了一个条件 跟上面每个分支条件表达式相反的功能
好处:只要满足一个分支以后 后面的分支就不需要判断了 效率高
写代码的时候 尽量保证else的存在 相当于兜底的功能
分支循环——if双分支
可以用条件运算符进行替换
Sum>=10 ? 中奖了 : 没中奖
分支的嵌套使用
switch分支
语法结构:
switch ( ) {
case * :
case * :
…
}
switch后面是一个() ()中表达式返回的结果是一个等值 这个等值的类型可以为
Int byte short char String 枚举类型
这个()中的等值会依次跟case后面的值进行比较 如果匹配成功 就执行:后面的内容
这边出现了问题 引入伪类防止代码
伪类防止代码的穿透作用 在每个分支后面加上一个关键词break 遇到break分支结束
类似else的兜底的分支 :default分支
default分支可以写在任意的位置上 但是如果没有在最后一行上 后面必须加上break关键字 如果没有在最后一行的话 break可以省略
相邻分支逻辑是一样的 那么就可以只保留最后一个分支 上面的都可以省去不写
switch分支和if分支区别
表达式是等值判断的话 if switch都可以
表达式是区间判断的话 if最好
switch应用场合:就是等值判断 等值的情况比较少的情况下
while循环
循环作用 将部分代码重复执行 循环只是提高了程序员编写代码的效率 但是底层执行的时候依然是重复执行
循环四要素 条件初始化 条件判断 循环体 迭代
这边sum=0不是初始化条件
初始化谁就判断谁 判断谁就迭代谁
循环的执行过程
num:1 sum:0
准备开始执行第一次循环 判断num<=5是否满足--->true--->{}中代码执行:sum:1 num:2 第一次循环结束
准备开始执行第二次循环 判断num<=5是否满足--->true--->{}中代码执行:sum:3 num:3 第一次循环结束
准备开始执行第三次循环 判断num<=5是否满足--->true--->{}中代码执行:sum:6 num:4 第一次循环结束
准备开始执行第四次循环 判断num<=5是否满足--->true--->{}中代码执行:sum:10 num:5 第一次循环结束
准备开始执行第五次循环 判断num<=5是否满足--->true--->{}中代码执行:sum:15 num:6 第一次循环结束
准备开始执行第六次循环 判断num<=5是否满足--->false--->{}中代码不执行 循环停止
--->循环停止之后 sum:15 num:6
do-while循环
while do-while区别
while先判断 再执行
do-while先执行 再判断--->至少被执行一次 从第二次开始才进行判断
for循环
for的结构
for( 条件初始化; 条件判断; 迭代 ){
循环体;
}
i的作用域 作用范围 离变量最近{}
ps