目录
一、三种判断
1、if 判断
if判断有三种结构形式
(1)if
if(关系表达式:布尔值) {
语句体;
}
(2)if...else
if(关系表达式:布尔){
语句体1;
} else {
语句体2;
}
(3)if...else if(可以有多个)...else
if(关系表达式1:布尔值){
语句体1;
}else if(关系表达式2:布尔值){
语句体2;
}.......else if(关系表达式N:布尔值){
语句体N;
}else{
//最后一个else 不带条件
语句体N+1;
}
代码演示:
import java.util.Random;
public class TestIf {
public static void main(String[] args) {
//随机生成小于10的整数i和j
Random r = new Random();
int i = r.nextInt(10);
int j = r.nextInt(10);
System.out.println("i="+i);
System.out.println("j="+j);
System.out.println("==================");
boolean flag = false;
if(i>5) {
flag = true;
}
System.out.println(flag?"i大于5":"i小于5");
System.out.println("==================");
if(i%2==0) {
System.out.println("i是偶数");
}else {
System.out.println("i是奇数");
}
System.out.println("==================");
if(i>j) {
System.out.println("i大于j");
}else if(i<j){
System.out.println("i小于j");
} else {
System.out.println("i等于j");
}
}
}
2、switch
(1)格式
switch(表达式){
case 值1:
语句体1;
break;
case 值2:
语句体2;
break;
.....
default:
语句体N+1;
break;
}
(2)switch
switch后的变量支持int及以下(char,short,byte,因为它们可以自动转换成int)Integer也可以,String(大于等于1.7版本),Enum,必须要赋初值,也可以这样赋值switch(score = 0);
switch 不支持 long,是因为 switch 的设计初衷是对那些只有少数的几个值进行等值判断,如果值过于复杂,那么还是用 if 比较合适。
(3)case
case之后的值必须和switch变量的类型一致,否则会编译报错
(4)default
在没有匹配到的情况下回执行default,即所有的case后的值都不满足switch后的变量值
(5)break
case语句没有break时,匹配成功后,从当前 case 开始,后续的 case 值都会输出,直到遇到一个break或者switch语句结束
3、三目运算符
条件表达式 ? 处理方式1 : 处理方式2;
二、三种循环
1、 while循环
while(循环条件){
循环体;
}
先判断循环条件,如果条件成立,则执行循环体,循环完成后再判断一次循环条件,若成立,则继续执行循环体,直到循环条件不成立。
2、do...while循环
do{
循环体;
}while(循环条件);
do...while循环先执行一次循环体,然后判断循环条件,如果条件成立,则继续执行循环体,直到循环条件不成立;注意:do...while循环,无论循环条件是什么(无论循环条件是否成立),都执行一次循环体。
3、for循环
(1)普通for循环
- 循环执行的次数是在执行前就决定的
- 循环变量语句可以是空语句
for(循环变量;循环条件;改变循环变量){
循环体;
}
执行流程:
a、执行初始化语句;
b、执行条件判断语句,看其结果是true还是false
如果是false,循环结束;
如果是true,继续执行;
c、执行循环语句体;
d、执行条件控制语句体;
e、回到b继续执行
(2)增强for循环
for(元素类型type 元素变量value :遍历对象obj){
循环体;
}
代码演示:
public class TestFor {
public static void main(String[] args) {
int[][] arr = {{2,4},{1,3},{0,11},{10,20}};
for (int[] a : arr) {
for (int i = 0; i < a.length; i++) {
System.out.print(a[i]+",");
}
}
}
}
上面的代码,用增强for循环遍历了二维数组,内层循环用了普通for循环,不过正常人不会这么写,这里是为了一次性演示它们的用法