while分支结构
我们知道if(switch)可以生成一个分支结构。想象一个游戏的主菜单界面,我们通过选择选项(分支)进入某个选择区(比如新游戏、继续游戏、选项),然后我们可以通过返回的方法重新回到主菜单。这时候我们可以把主菜单设计为一个循环的结构,通过循环中的分支进入某个选择区。这样可以保证主菜单一直在运行状态。
示例代码:
void menu(){
while(true){
/*
*TODO somecode1
*/
if(condition1){
continue; //返回到循环开头
}else if(condition2){
return; //结束menu()这个方法体
}else if(condition3){
option(); //进入option()这个方法体
}else{
break; //执行menu()方法体在while后面的部分
}
/*
*TODO somecode2
*/
}
void option(){
/*
*TODO somecode3
*/
}
操控for循环
for循环一般是我们知道需要执行的步骤时使用。但是实际上我们同样可以通过if可以控制这个步骤。比如说,我们试图生成4个不相同的随机数。那么我们可以for循环4次,每次生成一个随机数。只要我们发现这个随机数和之前的数相同,我们就让for后退一步重新执行循环体:
void makeCode(){
for(int i=0;i<this.codeNum.length;i++){
this.codeNum[i] = ((int)(Math.random()*33))+1;
for(int j=0;j<i;j++){
if(this.codeNum[i]==this.codeNum[j]){
i--; //通过这个使for循环返回以前的步骤
break;
}//endif
}//endinnerfor
}//endouterfor
}//endmethod