流程控制 用通俗的话说 就是 控制代码执行的顺序,什么时候开始,什么时候停止,什么时候循环等等。
要控制好 代码的执行顺序,我们需要了解以下知识:
1.编程风格
2.条件语句
3.循环语句
4.中断与继续的语句
5.分支语句
6.返回语句
7.疑难问题和总结
主要是三个方面的东西需要留意,缩进,空行,和注释。
这三个东西注意好了,就能让我们的代码易读。就不会在复杂的流程控制中把自己绕晕。
if(){ }
if(){ }else{ }
if(){ }else if(){ }
if(){ }else if(){ }else{ }
int a=12; int b=10 if(a>b){ System.out.println("a比b大"); }else if(a==b){ System.out.println("a等于b"); }else{ System.out.println("a比b小"); }
循环语句用于简化重复的操作。比如 自加10次。
for(初始化表达式;判断表达式;递增或者递减表达式){ }
这里的执行顺序是:
首先执行初始化表达式一次。
然后到判断表达式
当满足判断表达式时,会执行花括号中的代码
执行完之后 进行 递增或者递减表达式
再回到判断
当满足判断表达式时,会执行花括号中的代码
执行完之后 进行 递增或者递减表达式
直到 不满足判断表达式则 循环停止。ps:
1.使用break能跳出整个for循环。
2.使用continue能跳过当前判断,进行下一个判断
int count=0; for(int i=0;i<10;i++){ count++; } System.out.println(count);
这里从0开始进入判断,满足条件,count 自加
一直到i自加到10时不再满足条件,for循环停止。
从0到9一共进行了10次自加。
则 输出为10
while(条件){ }
满足条件时 执行花括号中的代码
再继续判断是否满足条件
直到 不满足条件则 循环停止。
int a=10; while(a>6){ System.out.println(a); a--; } 输出结果为: 10 9 8 7
do{ } while(条件);
再判断条件 条件满足 再执行一次
条件不满足则 不再执行
int a=10; do{ System.out.println(a); a--; }while(a>6); 输出结果为: 10 9 8 7
前面在for循环中提到过break,起到跳出循环的作用
我们直接看下面两个例子来理解:
for(int i=0;i<10;i++){ System.out.println(i); } 输出结果: 0 1 2 3 4 5 6 7 8 9
for(int i=0;i<10;i++){ System.out.println(i); if(i==2){ break; } } 输出结果: 0 1 2
for循环中我们提到过continue是跳出本次循环,继续下一次的判断
我们直接通过一个例子来看continue怎么用
for(int i=0;i<10;i++){ if(i%2==0){ continue;//如果i的余数为0,也就是为偶数时,跳出本次循环 } System.out.println(i); } 输出结果: 1 3 5 7 9
当判断条件太多时,我们就可以考虑使用switch分支语句。
因为写太多的if else 太繁琐。
switch(参数){ case 条件: 执行语句; break; case 条件: 执行语句; break; case 条件: 执行语句; break; default:执行语句; }
int i=2; switch(i){ case 1: System.out.println("1");break; case 2: System.out.println("2");break; case 3: System.out.println("3");break; default:System.out.println("无匹配情况"); } 输出结果: 2这里有个细节,break;不能漏掉。
否则输出结果为:
2
3
无匹配情况
return
就是跳出当前的子程序或者函数,回到主程序中。
public void set(int a,int b) { i=a*b; return; //默认语句 }
return的意思是这个小函数已经结束了,返回到主程序中。
public int set(){ return i=a*b; }
返回i到主函数中
一般有上限的循环多使用for
无限循环的多用while
条件多于 3个以上的可以考虑使用switch
3个以下可用if