if
IF语句格式:
1. if(关系表达式){为true则执行此括号内},为false则不执行,顺序往下执行另外语句。
2. if(关系表达式){为true则执行此括号内}else{为false则执行此括号内}
3. if(关系表达式){为true则执行此括号内,否则继续往下判断}else if(关系表达式
){为true则执行此括号内,否则继续往下判断 }.....else{执行此括号内}
代码片段示例:
boolean flag = true;
//或者boolean flag = false;
if (flag){ //括号里一般写入条件表
//flag为true执行此处代码
}else {
//flag为false执行此处代码
}
三元运算都可以改为IF语句,但IF语句并不是都能改为三元运算,只有给某数赋值可以改。
IF语句后如果直接跟分号,就会识别直接结束IF语句。(记住左大括号前不要加分号)
在做一个程序的基本测试的时候,一定要考虑这几个问题:
正确数据,错误数据,边界数据
遇到左大括号,缩进一个Tab键位
switch
switch(表达式) {
case 常量值1:
语句体1;
break;
case 常量值2:
语句体2;
break;
...
default:
语句体n+1;
break;
}
- 首先计算出表达式的值
- 其次,和case依次比较,一旦有对应的值,就会执行相应的语句,在执行的过程中,遇到break就会结束。
- 最后,如果所有的case都和表达式的值不匹配,就会执行default语句体部分。
switch语句注意事项
- 多个case后面的数值不能相同
- switch语句格式可以灵活使用:前后语句顺序可以颠倒,break语句也可以省略
- switch后面的小括号中只能放以下数据类型:
- 基本数据类型: int short byte char
- 引用数据类型:String 字符串 enum枚举
case穿透:不会在判断下一个case的值,直接向后运行,直到遇到break,或者整体switch结束
如果default在前面,出现了case穿透,会直接执行到末尾,到末尾程序结束,不会再返回default
switch语句结束条件:
a.遇到break
b.执行到末尾
小结
- switch适用于几个常量的判断
- default是可以省略的
for语句
for循环语句格式
for(初始化表达式①; 布尔表达式②; 步进表达式④){
循环体③
}
for循环括号内的三个条件可以为空,但是容易造成错误和死循环。
while
循环语句格式
初始化表达式①
while(布尔表达式②){
循环体③
步进表达式④
}
- while其实和for可以等价转换,只是while可以不写初始化语句(例int i=1)和控制循环条件(例i++)。但是实际使用中会自己加在之前和循环体之间。
- for循环的条件控制变量,在使用完后就无效了,但while因为是在上面单独定义的,所以while结束后还能继续使用
所以如果你想继续使用这个变量就用while,循环完不想用了就用for
do…while
循环格式
初始化表达式①
do{
循环体③
步进表达式④
}while(布尔表达式②);
- do while其实和while的区别就是会先执行一次循环体再进行条件判断,后同理
(所以do while是必须先执行一次循环体的,而for和while是先判断再执行)
小技巧
-
print():是不换行输出语句
-
“\t"是空格,当然直接” "也可以。
-
打印图形的时候(例如99乘法表)
-
外层循环控制行,内存循环控制列
变量定义,适用于整个大括号内,大括号结束,则变量终结。
(例如for(int x=1;;{只在此大括号内使用})),且他的上级作用域(大括号)没有定义此变量(x)名。
循环4个流程:
- 初始化表达式① (给表达式赋值,可以做在循环前)
- 布尔表达式②(判断是否循环的条件)
- 循环体③(执行的循环体)
- 步进表达式④(改变循环的条件)
控制跳转语句:
- break:中断 (switch和循环语句中使用,其他地方无意义)(多用于循环时的IF判断后跳出)(只跳出单层、当前循环),如果想跳出多层,需要先给循环加上标签名(例:b1:for(;;)循环,跳出时用break b1;跳多层很少用)
- continue:继续 (只能在循环语句中使用,其他地方无意义,退出本次循环体,但是会继续进行条件判断继续执行本次循环,默认单层退出,也可以加标签,进行多层操作,同break)
- return:返回 结束当前使用的方法,返回上级方法