Java的程序控制流程
#####1.顺序结构
如果代码里没有流程控制,程序是至上而下一行一行执行的,一条语句执行完之后继续执行下一条语句,直到程序的最后。
public class Test{
public static void main(String[] args){
System.out.println("顺序结构");
}
}
2.分支结构(条件结构)
if语句:
基本语法:
if(表达式){
方法体}else if(表达式){
方法体}else{方法体
}
单分支:表达式成立则执行方法体
if(表达式){
方法体
}
双分支:if里的表达式成立执行方法体1,否则执行方法体2
if(表达式){
方法体1
}else{
方法体2
}
多分支:表达式成立哪个就执行哪个
if(表达式1){
方法体1
}else if(表达式2){
方法体2
}else if(表达式3){
方法体3
}....
else{
方法体n
}
switch语句:
switch用来实现多分支的
switch(表达式)
{
case 表达式可能的结果值1:
执行语句;
break;
case 表达式可能的结果值2:
执行语句;
break;
...
default:
执行语句;
break;//最后这个一般不写
}
注意:break是直接跳出语句,不会执行switch后面的语句,而不写break则会全部执行完
3.循环
for循环
for循环的一般表达式为
for(表达式1;表达式2;表达式3){
代码
}
表达式1是对循环变量赋初值,表达式2是对于循环变量的范围的界定,表达式3则一般是控制循环变量自加或自减
如,遍历:
int[] arr = {1, 2, 3, 4, 5};
System.out.print("[");
for(int x = 0;x<arr.length;x++){
if(x == arr.length - 1){
System.out.print(arr[x]);
} else {
System.out.print(arr[x] +", ");
}
}
System.out.print("]");
第一步:求解表达式1。
第二步:求解表达式2。若其为真,则执行 for 语句中指定的内嵌语句,然后执行第3步;若表达式2为假,则结束循环,转到第5步。
第三步:求解表达式3。
第四步:转回上面第2步继续执行。
第五步:循环结束,执行 for 语句下面的语句
注意:无论如何for循环()中的;不可忽略。
while循环
while (条件) {
// 循环体
}
while循环运行时首先判断表达式是否为真,如果表达式为真,则运行while循环中的代码,执行完之后再次判断表达式是否为真,如果为真则再次执行while循环中的代码,以此循环,直到表达式为假,跳出循环,
死循环:
public class Test{
public static void main(String[] args){
while(true){
System.out.println("死循环");
}
}
}
do while循环
do {
// 循环体
} while(条件);
do-while循环运行时首先执行一次代码,然后判断表达式是否为真,如果为真,则再执行一次代码,然后再判断表达式是否为真,以此循环,直到表达式为假,循环结束。
注意:while(表达式);后面的;不可以省略
while和do-while唯一的区别就是do-while中的代码至少会执行一次,即便表达式第一次就被计算为false。而在while循环结构中,如果表达是第一次就为false,那么其中的代码就不会执行
break和continue的区别
break:
(1)在分支结构程序设计中用break语句可以使流程跳出switch结构,继续执行switch语句下面的一个语句;
(2)break语句可以用来从循环体内中途跳出循环体,即提前结束循环操作,接着执行循环下面的语句
continue
(1)continue语句是跳过循环体中剩余的语句而强制执行下一次循环操作。其作用为结束本次循环,即跳过循环体中下面尚未执行的语句,接着进行下一次是否执行循环的判定
注意:
(1)在循环语句中,break语句一般都是与if语句一起使用;
(2)break语句只能用于循环语句和switch语句之中,不能用于其他任何语句中;
(3)continue语句只能用在循环语句中
区别:
(1)continue语句只结束本次循环,而不是终止整个循环的执行;
(2)break语句则是结束整个循环过程,不再判断执行循环的条件是否成立
双层for循环
public class Test{
public static void main(String[] args){
printB();
}
public static void printB(){
for(int i = 1;i < 10;i++){
for(int j = 1;j <= i;j++){
if(i * j > 9){
System.out.print(i+" * "+j+" = "+(i * j)+" ");
} else {
System.out.print(i+" * "+j+" = "+(i * j)+" ");
}
}
System.out.println();
}
}
}