控制语句:if...else...、if...else if...else...、while()、do...while()...、for循环;
Java 中不允许把一个数字作为布尔值使用,比如 a = 3 时 if(a) 需要写成 if(a != 0) 的形式;
while 和 do while 的唯一区别就是 do while 中的语句至少会执行一次;
在 for 循环的控制表达式的初始化和步进控制部分,可以使用一系列由逗号分隔的语句,这些语句都会被独立执行;
foreach 语法:for(主类型 x : 数组) { }
print() 表示输出后不换行,println() 表示输出后换行;
跳出当前处理:break、return、continue 三种方式;
无穷循环:while(true)、for(;;)
对于 while 循环的控制:
- 一般的 continue 会退回最内层循环的开头,并继续执行;
- 带标签的 continue 会到达标签的位置,并重新进入紧急在那个标签后面的循环;
- 一般的 break 会中断并跳出当前循环;
- 带标签的 break 会中断并跳出标签所指的循环;
Java 中使用标签的唯一理由就是存在循环嵌套时,从多次嵌套中 break 或 continue,否则尽可能的不要使用标签;
下面是对上述逻辑的实例:
public class TestClass {
public static void main(String[] str) {
TestWhile.testIf(11);
TestWhile.testIfElse(10);
TestWhile.testWhile(11);
TestWhile.testDoWhile(10);
TestWhile.testFor(11);
int[] iNum = {1,2,3,4};
TestWhile.testForeach(iNum);
TestWhile.testBreak(10); //break后可以继续走到for循环
TestWhile.testBreak(20); //return后不会走到for循环
}
}
class TestWhile {
/**
* if...else控制语句
* @param iNum 是控制元素
*/
public static void testIf(int iNum) {
if(iNum > 10 ) {
System.out.println("If:The number is big.");
} else {
System.out.println("If:The number is little");
}
}
/**
* if ...else if...else...控制语句
* @param iNum 是控制元素
*/
public static void testIfElse(int iNum) {
if(iNum > 10 ) {
System.out.println("IfElse:The number is big.");
} else if (iNum == 10){
System.out.println("IfElse:The number is 10");
} else {
System.out.println("IfElse:The number is little");
}
}
/**
* while控制语句
* @param iNum 是控制元素
*/
public static void testWhile(int iNum) {
while (iNum > 10) {
System.out.println("While:The number is big.");
iNum--;
}
}
/**
* do...while...控制语句,相对while来说,dowhile会至少执行一次
* @param iNum 是控制元素
*/
public static void testDoWhile(int iNum) {
do {
System.out.println("DoWhile:The number is big.");
iNum--;
} while (iNum > 10);
}
/**
* for循环
* @param iNum 是控制元素
*/
public static void testFor(int iNum) {
for (int i = 0; i < iNum; i++) {
System.out.println("For:The number " + i + " is little.");
}
}
/**
* foreach循环,比for看起来更简洁
* @param iNum 是控制元素
*/
public static void testForeach(int[] iNum) {
for(int i:iNum) {
System.out.print("The number is " + i);//输出后不换行
System.out.println();//仅输出换行
}
}
/**
* break表示跳出当前循环,并继续后续语句执行
* return也是跳出,但是带有返回值,并且不会继续后续执行语句
* continue是忽略后续流程重新开始新的循环
* @param iNum 是控制元素
*/
public static void testBreak(int iNum) {
switch (iNum) {
case 10:
break;
case 20:
return;
default:
break;
}
for(int i= 0; i < iNum; i++) {
if (5 != i) {
continue;
}
//只有i=5的时候才会走到这个输出语句
System.out.println("The iNum is " + iNum + " and find 5");
}
}
/**
* 这是一个while无穷循环,慎用
*/
public static void testWhileForEver() {
while (true) {
//break;
}
}
/**
* 这是一个for无穷循环,慎用
*/
public static void testForEver() {
for(;;) {
//break;
}
}
/**
* 标签的使用
* @param iNum 是控制元素
*/
public static void testCycle(int iNum) {
test1:
while(100 < iNum) {
test:
for (int i = 0; i < iNum; i++) {
if (10 != i) {
iNum--;
continue test;
} else if (10 == i) {
break test1;
}
}
}
}
public static void testInt(int iNum) {
//while (iNum) {
//}
}
}
输出结果:
If:The number is big.
IfElse:The number is 10
While:The number is big.
DoWhile:The number is big.
For:The number 0 is little.
For:The number 1 is little.
For:The number 2 is little.
For:The number 3 is little.
For:The number 4 is little.
For:The number 5 is little.
For:The number 6 is little.
For:The number 7 is little.
For:The number 8 is little.
For:The number 9 is little.
For:The number 10 is little.
The number is 1
The number is 2
The number is 3
The number is 4
The iNum is 10 and find 5
switch 的选择因子必须是 int 或 char 那样的整数值,后续 switch 和 enum 协调工作时可以减弱这种限制。如果使用 int 或 char 类型,大部分编辑器会报错:
本文作者: sylan215
本文地址: http://www.sylan215.com/
版权声明: 本文首发于公众号「sylan215」,可以随意转载,但必须在明确位置注明出处!