顺序结构就是按照代码顺序执行,从开始到结尾一步步执行到结束。
很明了…
分支结构就好比分岔路,你遇到分岔路要么走左边,要么走右边,分支结构也是这个原理。分支结构有if分支和switch分支。
if…else…的关键字作用已经学习过了。
if(expression){ //如果expression的bool值为true,则执行这个大括号里面的语句。 }else{ //如果expression的bool值为false,则执行这个大括号里面的语句。 }
效果就是,要么执行if后面括号的语句,要么执行else后面的语句。如果if后面不跟else,则if代码块判断并执行结束后,后续语句按照顺序执行。
看一下if后面不跟else的情况:
if(expression){ //如果expression的bool值为true,则执行这个大括号里面的语句。 } //如果expression的bool值为false,则执行后续代码。 ... ... ...
举个例子:
例子一:if…else…
例子二:if…
可以根据需求对if…else…进行嵌套,if…else…里面包含if…else… 毕竟人生不止一次分岔路,也不止一次选择。
如果说if…else…是双分支的情况,那么switch就支持多分支。
switch的语法:
switch(expression){ case value1: ...; break; case value2: ... break; ... ... ... default: ... }
switch后的expression的值跟case后面的value相等的话,就做对应的case代码块,break用来跳出执,不然做完了此次case,会按照顺序执行后面的语句直到switch结束,default是当expression与value没有任何相匹配的, 则进入default语句(如果default存在的话)
有break,有default的情况:
无break,有default:
循环得有限次,不能无限次的循环下去,变量设计很重要。
语法:
while(expression){ ... }
当expression的bool值为true时,执行代码块语句,执行完语句后再对expression进行判断,直到expression为false时停止循环
do-while就是while循环的演变,保证循环体至少执行一次。
语法:
do{ ... }while(expression);
会先执行do语块里面的内容,在进行判断,为true进行循环,为false停止。
语法:
for(expression;boolean expression;iteration factor){ ... }
for循环在循环开始的时候声明了初始表达式(expression),判断布尔表达式(boolean expression)的布尔值,如果为true,则执行循环体代码,执行结束之后会改变迭代因子(iteration factor)的值,在有限次循环内,布尔表达式(boolean expression)的布尔值将会变成false,跳出循环;如果为false,则不做循环体的语句。
举例:求1~9的和
注:本例子的i在循环体结束后将失去作用(被回收),i在循环开始的时候进行声明,循环结束后就失去作用,如果使用的是之前声明的变量,则该变量还能继续使用。
在循环时,可以用break,continue,return对循环进行控制。
作用是停止循环
在switch中已经感受过了
同样也可以在while,do-while,for循环中使用。
如果存在循环嵌套,break停止的是本层循环
举例:
在java中可以定义标签:
tag1: for(int i=0;i<10;i++){ ... }
其中,"tag1"就是标签,break可以通过标签跳出对应的循环
举例:
对比之后可知,内层循环得break通过标签可以跳出外层循环
continue作用是结束本次循环,进行下一次的循环,与break的停止循环不同。
举例:
在程序中遇到return,程序就会被终止