流程控制
顺序结构
默认就是代码从上往下,从左到右执行。
分支结构
根据不同的情况,做出不同的处理。
if...else
分支结构
单分支:有不执行情况
if(布尔型){
执行的代码;
}
双分支:必须有一个执行
if(布尔型){
为真执行的代码;
}else if{
为假执行的代码;
}
多分支:多分支只会有一个分支执行,当一个分支执行的时候,整个多分支结束。
if(布尔型){
为真执行的代码;
}else if(布尔型){
为真执行的代码;
}else if(布尔型){
为真执行的代码;
}
int i = 3;
if (i % 2 == 1) {
System.out.println("奇数");
}
if (i % 2 == 1) {
System.out.println("奇数");
} else {
System.out.println("偶数");
}
如果分支只有一条语句,大括号可以省略(不建议省略)
if (1 < 2)
System.out.println(true);
else
System.out.println(false);
switch
语法:
1.7之前,只能传入int类型(byte,short,char,int)
1.7开始,还可以传入字符串。
switch(值){
case 值:
执行语句break;
case 值:
执行语句break;
case 值:
执行语句break;
default :
执行语句
}
每个分支都需要使用break,否则会出现case穿透现象。
int i = 10;
switch (i) {
case 1:
System.out.println(1);
break;
case 2:
System.out.println(1);
break;
case 3:
System.out.println(1);
break;
default:
System.out.println("===");
break;
}
case穿透
switch (c) {
//利用case穿透,合并case分支
//A和B都是优秀
case 'A':
case 'B':
System.out.println("优秀");
break;
case 'C':
System.out.println("良好");
default:
System.out.println("一般");
break;
}
循环结构
重复做某一件事。
For循环
for循环三要素:初始值,终止条件,步长。
for循环,又叫计数循环,可以规定循环执行的次数
for( 表达式1;表达式2;表达式3 ){
重复做的事;
}
表达式2必须是布尔型!
先执行表达式1,并且只执行1次,然后执行表达式2,如果结果为false,则循环终止
如果表达式2为true则执行循环体,然后执行表达式3,再次执行表达式2,如果结果为false,则循环终止。
合表达式1和表达式3的执行情况:表达式1一般适合做数据初始化工作,而表达式3每次都会执行,所以适合控制执行次数(步长)。
for (int i= 0;i < 10; i += 2){
System.out.println(i);
}
// 循环中的ì,只能在循环中使用,循环外无法使用
嵌套循环
嵌套循环:循环中还有一个循环
外层循环执行一次,内层循环执行一轮,所以二维循环,又可以用来模拟二维表格.
外层循环可以表示行,内层循环可以表示列。
下面为九九乘法表的嵌套循环代码:
for (int i = 1; i < 10; i++) {
for (int j = 1; j <= i; j++) {
System.out.print(j+"x"+i+"="+(j*i) + " ");
}
System.out.println();
}
While循环
while 又称为真假循环,当某个条件为真的时候执行。
执行次数为0~N次。
格式:
while(布尔型){
循环体
}
int i = 0;
while (i < 10) {
System.out.println(i);
i++;
}
doWhile循环
doWhile 也是真假循环,但是保证代码至少执行一次
执行次数是 1~N次
do{
循环体;
}while(布尔型);
int i = 0;
do {
System.out.println(i);
i++;
} while (i < 10);
终止语句
break
break:打断,两种用法。
1 用在switch中 用于结束case分支,防止case穿透现象。
2 用在循环中,用于终止循环执行。
for (int i = 0; i < 100; i++) {
if (i == 59) {
//终止循环进行
//场景:在一堆数据中找到某个数据,找到之后,就不需要再查看剩下的数据了。
System.out.println("找到啦");
break;
}
System.out.println(i);
}
Continue
continue:跳过当前次循环,相当于不执行下面的循环体了,直接执行i++。
for (int i = 1; i < 100; i++) {
if (i % 3 == 0) {
// 场景:在一堆数据中进行筛选,不符合条件的数据就不要了。
// 比如 1~100内 不要能被3整除的数据
System.out.println("不要 : "+i);
continue;
}
System.out.println(i);
}
outFor
break:终止循环执行,但是在嵌套循环中,只能终止近层循环。
continue:跳过当前次循环,但是在嵌套循环中,只能跳过近层循环。
//对外层循环设置一个名字
outFor: for (int i = 0; i < 6; i++) {
for (int j = 0; j < 4; j++) {
if (j == 2) {
// 使用的时候,只需要在后面加上名字 即可操作外层循环
// break outFor;
continue outFor;
}
System.out.print(j + " ");
}
System.out.println();
}