3.流程控制
程序的三种结构
基本上所有编程语言中,程序都有三种结构:顺序结构、分支(选择)结构、循环结构。Java也不例外。
顺序结构:自上而下的逐行执行代码。
选择结构:根据逻辑判断,有选择的执行其中某部分代码。
循环结构:根据逻辑判断,重复执行某个代码块。
分支(选择)结构程序设计
★if分支
◆单
从键盘输入一个年份,判断该年是否是闰年,
如果是的输出 xxxx是闰年
如果不是输出 xxxx是平年
分支语法:
if(表达式){
代码块;
}
说明:
如果表达式的值为true,则执行代码块,否则不执行。
二路分支(双分支)
语法:
if(表达式){
代码块1;
}else{
代码块2;
}
说明:
如果表达式的值为true,则执行代码块1,
如果表达式的值为false,则执行代码块2.
从键盘输入一个年份,判断该年是否是闰年,
如果是的输出 xxxx是闰年
如果不是输出 xxxx是平年
switch分支
switch是多分支语句
语法:
switch(表达式){
case 值1:代码块1;
break; //break不是必须的,根据情况而定
case 值2:代码块2;
break;
……
…...
……
default:代码块n; //default可有可无
}
注意: JDK6 中表达式的类型只能为 byte short int char
JDK7中表达式的类型只能为 byte short int char String
说明:
根据switch后面表达式的值,去依次和case后面的值匹配,遇到匹配的就从这个case进入,执行后面的代码块,不再判断后面的case、default标签的值是否匹配,他会一直往下执行,直到遇到break才会停止。
如果没有遇到匹配的,就执行break后面的代码块。
多路分支
语法:
if(表达式1){
代码块1;
}else if(表达式2){
代码块2;
}else if(表达式3){
代码块3;
}
…….
…….//中间可以有n个 else if
……..
else{//最后这个else可有可无
代码块n;
}
说明:
如果表达式1的值为true,则执行代码块1,如果表达1的值为false,则判断表达式2
如果表达式2的值为true,则执行代码块2,如果表达式2的值为false,则判断表达式3
如果表达式3的值为true,则执行代码块3,如果表达式3的值为false,则判断表达式4
…….
…….
如果都不成立,则进入else中执行代码块n。
循环结构程序设计
★while循环
语法:
while(循环条件){
代码块/循环体;
}
说明:
首先判断循环条件是否为true,如果为true则进入循环体执行,执行完成后自动回到前面再次判断循环条件,如果为true则进入循环体执行,执行完成后又回到前面再次判断,依次循环,直到循环条件为false则循环结束。
do…while循环
语法:
do{
代码块/循环体;
}while(循环条件);
说明:
首先进入循环体执行,执行完成后判断循环条件是否成立,如果条件成立回到前面再次执行循环体,执行完成又判断循环条件是否处理,如果条件成立回到前面执行循环体,依次循环,直到循环条件不成立,则循环截止。
for循环
语法:
for(表达式1;表达式2;表达式3){
循环体;
}
说明:
表达式1:初始化变量
表达式2:循环条件
表达式3:循环增量
首先执行 表达式1 –》判断表达式2,如果表达式2成立,则执行循环体,循环体执行完成后,执行表达式3。执行完3,又判断表达式2是否成立….依次循环,直到表达式2不成立循环截止。
while 和 do…while的区别
public class Test1{
public static void main(String[] args){
int i = 101;
while(i<=100){
System.out.println(i);
i++;
}
}
}
运行结果:
没有输出
public class Test1{
public static void main(String[] args){
int i = 101;
do{
System.out.println(i);
i++;
}while(i<=100);
}
}
运行结果:
101
总结:while是先判断,再执行 do…while先执行,后判断
do…while至少执行一次。
分支、循环嵌套
在实际应用中,往往单独使用分支结构或则循环结构不能解决所有问题,很多情况下面需要使用分支和循环结构的嵌套。
★分支中嵌套分支结构
案例一: 从键盘输入3个整数,输出其中最大的一个
循环中嵌套分支结构
案例一: 输出1--100中能被3整除的数
循环中嵌套循环结构
打印九九乘法表
循环的控制 break、continue
break语句除了可以用在switch语句中,还可以用在循环体中。在循环体中遇见break语句,立即结束循环,跳到循环外,执行循环结构后面的语句 。break语句用于结束整个循环。
continue语句用于结束本次循环,即在循环体中遇见continue语句,则循环体中continue语句后面的语句不会执行,接着进行下一次循环的判定。