一个程序,特别是解决复杂问题的程序,不可能是一直沿着一条线走下去的(有句古话叫做不撞南墙不回头),它必然要在某个条件下触发一条分支(就像游戏里的主线任务、支线任务一样),或是重复执行某个操作。程序有3大流程:顺序、选择、循环,IT界有位大神(名字真的记不清了)曾经验证过用这3大流程可以解决生活中的所有问题。

顺序结构

Java的基本结构就是顺序结构 ,顾名思义就是按顺序一句一句执行

Java审批流畅多个节点 java流程节点_java


语句与语句之间(框与框之间)按从上到下的顺序执行

选择结构

单选择

if (条件) {	// 如果条件成立,执行语句块
	语句块;
}

双选择

if (条件) { // 如果条件成立,执行语句块1;否则,执行语句块2
	语句块1;
} else {
	语句块2;
}

多选择

if (条件1) { // 其中任何一个条件成立,执行该条件的语句块(else if数量任意)
	语句1;   // 如果都不成立,执行else的语句块(可省略)
} else if (条件2) {
	语句2;
} else {
	语句n;
}

以上3种可以互相搭配形成嵌套if语句
switch结构

switch (i) {		// 当变量i的值与某个case后的字面量匹配时,执行对应的语句块
	case 字面量1:  // 都不匹配,执行default中的语句块(可省略)
		语句块1;
		break;
	case 字面量2:
		语句块2;
		break;
	case 字面量3:
		语句块3;
		break;
	default:
		语句块n;
}

注:1. 字面量类型可以是byte short int char,jdk7开始支持String
       2. break作用是跳出switch代码块,最下面的case或default才可以省略break,否则会造成case穿透(下面case的语句都会执行)

循环结构

while循环

while (条件) { // 先判断条件,再执行循环体,重复这个操作直到条件不成立时退出循环
	循环体
}

do-while循环

do {         // 先执行循环体,再判断条件,重复这个操作直到条件不成立退出循环
	循环体
} while (条件)

for循环

for (表达式1; 条件; 表达式2) {
	循环体
}
/*
 * 第1次操作时先执行表达式1,再判断条件,之后执行循环体,最后执行表达式2
 * 之后的操作不执行表达式1,其余和第1次操作相同
 * 当条件不成立时,退出循环
 * 表达式1、条件、表达式2都可以任意省略,但分号不能省
 */

以上3种循环结构可以任意搭配形成嵌套循环
for-each循环(增强for循环)
增强for循环适用于数组或容器,作用就是遍历数组或容器中的每个元素。举个例子:

String[] names = {"张三", "李四", "王五"};
for (String name : names) {
	System.out.println(name);
}

循环中用到的关键字

break:跳出当前循环
continue:退出本次循环,进行下一次循环
带标签的break:跳出标签位置所属的循环(就是在内循环中结束外循环)
带标签的continue:回到标签所在行执行