java for循环顺序问题
for (表达式 1 ;表达式 2 ;表达式 3 ) { //循环体 } 先执行“表达式1”,再进行“表达式2”的判断,判断为真则执行 “循环体”,循环体执行完以后执行表达式3.
例如
for(int i=0;i<2;i++){
//TODO
}
先执行 int i = 0;
然后 判断 i<2
然后执行函数体
最后执行i++
然后轮回到判断i<2
- int[] arr = new int[3];
- int j;
- arr[0] = 1;
- arr[1] = 2;
- arr[2] = 3;
- int searchKey = 3;
- for( j=0;j<arr.length ;j++){
- System.out.println("j1========="+j);
- if(arr[j] == searchKey){
- break;
- }
- }
- System.out.println("j2========="+j);
运行结果
j1=========0
j1=========1
j1=========2
j2=========2
- int[] arr = new int[3];
- int j;
- arr[0] = 1;
- arr[1] = 2;
- arr[2] = 3;
- int searchKey = 4;
- for( j=0;j<arr.length ;j++){
- System.out.println("j1========="+j);
- if(arr[j] == searchKey){
- break;
- }
- }
- System.out.println("j2========="+j);
运行结果
j1=========0j1=========1
j1=========2
j2=========3
对比以上两段代码以及运行结果,循环体中 break 后,表达式3将不会执行,即第一块代码中最后一次j++未执行

查看20道真题和解析