您的位置:首页 > 编程语言 > Java开发

Java学习笔记4-控制执行流程

2017-04-06 14:49 645 查看
控制语句: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.

b16c
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 类型,大部分编辑器会报错:



长按关注「我在编程」



多看 | 多想 | 多练

不积跬步无以至千里
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息