数据输入
- 导包
import Java.util.Scanner;
- 创建对象
Scanner sc=new Scanner(System.in);
- 接受数据
int x=sc.nextInt();
创建一次对象,多次接收数据
流程控制语句
顺序结构
条件结构 if 结构
if (关系表达式){
语句体;
}
- 首先计算关系表达式的值
- 如果关系表达式为true 则执行语句
- 如果关系表达式为false 则不执行
- 继续执行后面的语句
if(关系表达式){
语句体1;
}else {
语句体2;
}
执行流程:
1、首先计算关系表达式的值
2、如果关系表达式为true时 执行语句体1 为false 执行语句体2。
3、继续执行if-else结构后面的语句内容。
if语句格式3
if(关系表达式1){
语句体1;
}else if(关系表达式2){
语句体2;
|else {
语句体3;
}
- 首先计算关系表达式1的值。
- 如果值为true 就执行语句体1 如果值为false 就计算表达式 2的值
- 如果值为true 就执行语句体2 如果值为false 就计算表达式 3的值
- 如果没有任何关系表达式为true 就执行语句体3;
数据测试: 正确数据 -> 边界数据 -> 错误数据
switch( 表达式 ){
case 常量 1;
语句体1 ;
break ;
case 常量 2;
语句体2 ;
break ;
default: (不可中断switch)
语句体 3;
- 表达式的结果只数字(byte、short、char、int) 字符串(string)枚举
- case的值类型与表达式一致
- case 值不能重复是常量 在switch 语句中 如果case控制的语句 switch 中break 作用防止 整个switch 语句的执行。
- case 中没有遇见break 继续向下执行。
for语句
for(初始化语句;条件判断语句;条件控制语句;){
循环体语句;
}
1、执行初始化语句(只会执行一次)
2、执行条件判断语句 看其结果true还是false
如果是false 循环结束
如果是true 继续执行
3、满足条件,执行循环体语句
4、执行条件控制语句
5、回到第二步骤继续执行
while 循环
格式
初始化语句;
while (条件判断语句){
循环体语句;
条件控制语句;
}
执行流程:
-
执行初始化语句(只会执行一次)
-
执行条件判断语句,如果为true 执行循环体语句。如果为false 则结束循环
-
满足条件,执行循环体语句
-
执行条件控制语句
-
回到第二步继续执行
do …… while 循环 语句格式
初始化语句;
do{
循环体语句;
条件控制语句;
}while(条件判断语句);
执行流程
- 执行初始化语句(只执行一次)
- 执行循环体语句
- 执行条件控制语句
- 执行条件判断语句
为false 结束循环
为true 则回到第二步继续执行
do …… while 循环至少会执行一次循环体语句
三种循环的区别
// 死循环 死循环 后无代码 编译不通过
for(;;){
循环体;
}
while(true){
循环体:
}
do {
循环体;
}while(true)
for while do-while
特点 先判断再执行 先判断再执行 先执行 后判断
初始化 for循环外无法使 循环结束 初始化变量能继续使用 循环结束变量继续使用
用初始化变量
适用 循环次数确定 需要用到死循环或者循环次数不确定 循环至少需要执行一次
跳转控制
break 使用场景
- 在switch 中用结束switc结构
- 在循环中,用于结束break 所在循环
- 当循环有嵌套时,可以为循环加上标记 让break 结束指定循环
continue 使用场景
- continue只能在循环中使用,用于跳过一次循环,开始下一次循环
- 当循环有嵌套时,可以为循环加上标记,让continue 结束指定循环
wc : for(iint i=1;i<2;n++)
break wc
注意
break 和continue 语句后面都不能直接跟其他语句会编译报错