if分支
同cpp,基本的条件分支控制语句。
// 基本条件分支
int choose = 5;
if (choose < 3){
System.out.println("< 3");
}
else if (choose < 5) {
System.out.println("< 5");
}
else {
System.out.println("other");
}
// 嵌套条件分支
int a = 4;
int b = 6;
int c = 3;
if (a >= b) {
if (a >= c) { // 内嵌分支
System.out.println(a);
}
else {
System.out.println(c);
}
}
else {
if (b >= c) {
System.out.println(b);
}
else {
System.out.println(c);
}
}
while循环
同cpp,基本的循环语句。
int count = 5;
while (count-- > 0) {
System.out.println("hello");
}
do-while循环
同cpp,相较于while,do-while循环体至少执行一次,先执行,后判断。
int count = 0;
do {
System.out.println("hello");
} while(count++ < 5);
for循环
同cpp,常用于已知循环次数的情况,一般都可以与while互换。
for (int i = 0; i < 5; i++) {
System.out.println("Hello");
}
for-each迭代
同cpp11后提供的for-each一致,用于可迭代容器的迭代。
int[] arr = {1,2,3,4,5};
for (int each : arr) {
System.out.println(each);
}
循环控制
break
用于当条件满足时终止循环,不同于cpp只能跳出最近一层的循环,java中的break可以与标志结合,跳出多层循环。
// 如下输出有序容器中小于m的数
int[] arr = {1,2,3,4,5,6,7};
int m = 5;
for (int each : arr) {
if (each >= m) // 条件满足时终止内层循环,同cpp
break;
System.out.println(each);
}
int[][] table = {{1,2,3},{4,5,6},{7,8,9}}; // 三行三列的二维数组
mark: // 标志为[标志名]:的格式,一般放在外层循环前
for(int i = 0; i < table.length; i++) {
for(int j = 0; j < table[0].length; j++) {
if (table[i][j] >= m) // 条件满足时跳出标志下方的循环,不同于cpp
break mark;
System.out.println(table[i][j]);
}
}
continue
同cpp,用于当条件满足时结束当前一轮循环,跳过余下语句,进入下一轮循环。
// 如下输出容器中的所有奇数,两种写法等价
int[] arr = {1,4,2,6,3,8,7};
// 1.
for (int each : arr) {
if (each % 2 == 1) // 当前迭代为奇数时输出
System.out.println(each);
}
// 2.
for (int each : arr) {
if (each % 2 == 0) // 当当前迭代为偶数时直接进入下一轮循环,跳过余下语句
continue;
System.out.println(each);
}