控制程序执行的顺序的语句
分类:顺序结构(按照代码的先后顺序依次执行),
分支结构:if,switch
循环结构:for,while,do while
成立就执行,不成立就不执行
最后一个else算是配体条件(前方条件都不成立时候执行这个),非必要但是加上逻辑更完整
if语句也可以进行嵌套!
表达式(将要匹配的值 )
case,default(备胎,所有case语句都没有被匹配时执行)
default也是非必要的,但是配体条件能够逻辑更完整
1 case后的值不能重复
2 快捷键:
批量注释:
批量单行注释:选中后ctrl+/,再一次就是取消注释
批量多行注释:ctrl+shift+/,再一次也是取消
3 switch穿透现象(某被匹配地语句后没有break)
有时候能够利用switch地穿透作用,来优化代码(多个Case中有相同代码)
public static void switchTest2(){
Scanner sc=new Scanner(System.in);
int week=sc.nextInt();
switch (week){
case 1,2,3,4,5:
System.out.println("工作日");
break;
case 6,7:
System.out.println("休息日");
default:
System.out.println("您地输入有误");
break;
}
}
使用箭头指向继续优化:省略break。
switch (week){
case 1,2,3,4,5 -> System.out.println("工作日");
case 6,7->System.out.println("休息日");
default ->System.out.println("您地输入有误");
}
建议:
(1)if语句使用范围性判断
(2)swich适用于固定值地匹配
但是两者是相通地
循环语句的作用:代码重复执行
for( 初始化语句;条件判断语句 ;条件控制语句){
循环体;
}
初始化语句只执行一次
循环中控制循环的变量,可以在循环体中,继续使用。
注意:
如果方法的调用有值产生,要使用return语句将这个值进行返回
生成方法返回值的快捷键:带有返回值的方法调用时候,在后面输入**.var**:会自动生成对应的接受值的类型和提供得变量名(可以更改)
1 快速设置循环结构的快捷键:想要循环n次: n.fori回车
2 for循环{ }中定义的变量(局部变量),在每轮循环结束后,都会从内存中释放(从内存中消失),因此在for循环外使用for循环内定义的变量不可取
3 for循环()中定义的变量i,在整个循环结束后,才会从内存中消失,因此在一个程序中多个循环()内可以使用进行定义for循环,不冲突
4 ()和{ }之间不能写分号
内循环相对于外部循环是循环体,只有循环体结束才会进行下一次循环
循环嵌套的使用场景
执行流程:
1 初始化语句
2 执行判断语句,返回值为ture–>进入第三步,返回值为false,循环结束
3 执行循环语句
4 执行条件控制语句
5 回到步骤2
格式:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-IZzW4tZE-1681628604875)(C:\Users\86137\Desktop\笔记\java笔记\模块四.assets\image-20230413083225051.png)]
注意初始化语句和条件控制语句,while()后面后分号;
执行流程:
1 初始化语句
2 执行循环体(至少执行一次循环体)
3 执行条件控制语句
4 判断条件看返回值的布尔类型
与while最大的区别:do while循环循环体至少执行一次
for循环和while循环:先判断后执行
do while:先执行,后判断
for循环和while循环的区别:
for循环中的循环变量,在循环结束后,会从内存中自动消失,循环体外不能再被使用
while循环中用于控制循环的变量,在循环结束后,不会从内存中消失,循环结束后仍然可以使用(初始化在while循环外)
本质上是没有区别的,如果for循环循环控制变量如果在for循环外初始化,就跟while循环完全等价。
for循环语句一初始化挪到for循环之前,条件控制语句三挪到for循环体中后,和while循环完全一样(就关键字不一样)
因此for循环能够实现的,while循环也都能实现
作用:对循环进行控制
break关键字:跳出所属循环(结束循环)/所属swich,也能结束switch
注意事项:只能在循环或者switch中使用
continue关键字:跳出本次循环,继续执行下次循环(跳过)
注意:只能在循环中使用
break,continue共同注意点:
break,continue下面不能写代码,属于无效代码(执行不到)
(1) for(;;){}
(2) while(true)-----------更清晰
(3) do { }while(true)
无限循环可以通过break进行控制结束。
标号用于给循环起名字:形成一个falg,循环语句跳出时候,break后面可以指定跳出的位置。
Random精灵产生随机数
1 找符咒(imort java.untl.Random):IDEA会自动生成,可以忽略
2 召唤精灵:Random r=nem Random();
3 指挥精灵,产生随机数
int num=r.nextInt(n);----->随机产生从0到n的数字(不包含n)
如果想要产生1-n之间的随机数字(后面个加1:r.nextInt(n)+1)
System.out.println( );----->打印数据后有换行效果
System.out.print( );-------->打印数据后不进行换行