这种for循环你见过么 求解!~~~~

时间:2021-12-10 20:27:49
1. package com.zzk.test;  
2.   
3. public class Test {  
4.     static boolean foo(char c) {  
5.         System.out.print(c);  
6.         return true;  
7.     }  
8.       
9.     public static void main(String[] args) {  
10.         int i=0;  
11.           
12.         for(foo('A');foo('B')&&(i<2);foo('C')) {  
13.             i++;  
14.             foo('D');  
15.         }  
16.     }  
17. }  
请写出输出结果:

29 个解决方案

#1


一样的,只是把字符转换成对应编码,for里面还是三部分for(初始化条件;判断条件;迭代条件)

#2


ABDCBDCB

#3


主要考察for循环的执行顺序,每次执行foo(ch),都会输出

#4


ABDCBDCB

#5


没什么不可以的,for 语法
for (初始化语句; 每次循环体开始前判断是否继续循环的布尔表达式; 每次循环体后的执行语句)

其中,只有中间这个需要布尔表达,其余两个,基本上,是个语句就可以了。

#6


引用 5 楼 shine333 的回复:
没什么不可以的,for 语法
for (初始化语句; 每次循环体开始前判断是否继续循环的布尔表达式; 每次循环体后的执行语句)

其中,只有中间这个需要布尔表达,其余两个,基本上,是个语句就可以了。

顶个,分析到位

#7


引用 5 楼 shine333 的回复:
没什么不可以的,for 语法
for (初始化语句; 每次循环体开始前判断是否继续循环的布尔表达式; 每次循环体后的执行语句)

其中,只有中间这个需要布尔表达,其余两个,基本上,是个语句就可以了。


+1  事实就是这么样

#8


上面那段代码是很经典的,可以帮助你理解for循环语句

#9


把字符转换成对应的ASCII码。还是正常的循环语句。

#10


abdcbdcb应该是这个 这种for循环你见过么 求解!~~~~

#11


主要是注意一下输出顺序,楼上的都讲得很明白了。
我想说的是注意一下,最后会输出一个b,因为最后一次循环,当i=2时候,执行判断条件foo('B')&&(i<2);
foo('B');会执行一下的

#12


好像是一道面试题,考察for循环的执行顺序

#13


引用 5 楼 shine333 的回复:
没什么不可以的,for 语法
for (初始化语句; 每次循环体开始前判断是否继续循环的布尔表达式; 每次循环体后的执行语句)

其中,只有中间这个需要布尔表达,其余两个,基本上,是个语句就可以了。

+1

#14


引用 2 楼 Xuan6251237011 的回复:
ABDCBDCB


+1

#15


ABDCBDCB

#16


第一次成功后,初始化就不走了,走判断。每次判断成功后就走后面的结果程序

#17


考察for的流程。ABDCBDCB

#18


无非就是多了一个执行条件。

#19


ABDCBDCB
有助于理解for循环~

#20


这种for循环你见过么 求解!~~~~学习了,很不错的写法。

#21


ABCBCB
这个题目不错,考点
①&&:短路特性
②for的执行顺序~for (初始化语句; 判断条件; 循环条件)

#22


面试遇上了  一开始被搞懵了  后来想想就明白了

#23


该回复于2013-04-15 10:32:26被管理员删除

#24


这个例子没有转换编码吧?

引用 9 楼 ChanGis 的回复:
把字符转换成对应的ASCII码。还是正常的循环语句。

#25


ABDCBDCB
面试题吧,我上次也遇到了!!!!!!!!!!

#26


引用
没什么不可以的,for 语法
for (初始化语句; 每次循环体开始前判断是否继续循环的布尔表达式; 每次循环体后的执行语句)

其中,只有中间这个需要布尔表达,其余两个,基本上,是个语句就可以了。


结合大家讲的,然后debug一下,一目了然啊。
for(foo('A');foo('B')&&(i<2);foo('C'))
{  
   i++;  
   foo('D');  
}  
1.其实foo('A');就是初始化条件,只会执行一次,所以第一个打印的肯定是A
2.因为i=0;循环条件是i<2 由此可知循环会执行2次,接着会输出B,然后执行i++;i就变成1了,在输出D
,在最后输出C,
一次循环后的结果是:ABDC
3.第二次循环的开始是foo('A');是初始条件所以不会执行,直接从foo('B')开始,输出B,然后i为1,且小于2,此时循环体内再次执行i++;i的值为2了,再次输出D,最后输出C
第二次循环输出:BDC
4.然后循环再次执行for(foo('A');foo('B')&&(i<2);foo('C'))
直接输出B,i的值在第二轮循环后的值变成了2,2<2不成立,终止循环,输出B


最后答案为:ABDCBDCB
希望对你有帮助!

#27


for循环执行的顺序   首先是初始化语句      
开始执行  判断语句    执行循环体  执行步进     再进行判断依次重复这几个步骤直到 判断语句结果为假

#28


ABDCBDCB,应该是这个。

#29


引用 8 楼 Ada168855 的回复:
上面那段代码是很经典的,可以帮助你理解for循环语句
我咋觉得是没有意义的呢

#1


一样的,只是把字符转换成对应编码,for里面还是三部分for(初始化条件;判断条件;迭代条件)

#2


ABDCBDCB

#3


主要考察for循环的执行顺序,每次执行foo(ch),都会输出

#4


ABDCBDCB

#5


没什么不可以的,for 语法
for (初始化语句; 每次循环体开始前判断是否继续循环的布尔表达式; 每次循环体后的执行语句)

其中,只有中间这个需要布尔表达,其余两个,基本上,是个语句就可以了。

#6


引用 5 楼 shine333 的回复:
没什么不可以的,for 语法
for (初始化语句; 每次循环体开始前判断是否继续循环的布尔表达式; 每次循环体后的执行语句)

其中,只有中间这个需要布尔表达,其余两个,基本上,是个语句就可以了。

顶个,分析到位

#7


引用 5 楼 shine333 的回复:
没什么不可以的,for 语法
for (初始化语句; 每次循环体开始前判断是否继续循环的布尔表达式; 每次循环体后的执行语句)

其中,只有中间这个需要布尔表达,其余两个,基本上,是个语句就可以了。


+1  事实就是这么样

#8


上面那段代码是很经典的,可以帮助你理解for循环语句

#9


把字符转换成对应的ASCII码。还是正常的循环语句。

#10


abdcbdcb应该是这个 这种for循环你见过么 求解!~~~~

#11


主要是注意一下输出顺序,楼上的都讲得很明白了。
我想说的是注意一下,最后会输出一个b,因为最后一次循环,当i=2时候,执行判断条件foo('B')&&(i<2);
foo('B');会执行一下的

#12


好像是一道面试题,考察for循环的执行顺序

#13


引用 5 楼 shine333 的回复:
没什么不可以的,for 语法
for (初始化语句; 每次循环体开始前判断是否继续循环的布尔表达式; 每次循环体后的执行语句)

其中,只有中间这个需要布尔表达,其余两个,基本上,是个语句就可以了。

+1

#14


引用 2 楼 Xuan6251237011 的回复:
ABDCBDCB


+1

#15


ABDCBDCB

#16


第一次成功后,初始化就不走了,走判断。每次判断成功后就走后面的结果程序

#17


考察for的流程。ABDCBDCB

#18


无非就是多了一个执行条件。

#19


ABDCBDCB
有助于理解for循环~

#20


这种for循环你见过么 求解!~~~~学习了,很不错的写法。

#21


ABCBCB
这个题目不错,考点
①&&:短路特性
②for的执行顺序~for (初始化语句; 判断条件; 循环条件)

#22


面试遇上了  一开始被搞懵了  后来想想就明白了

#23


该回复于2013-04-15 10:32:26被管理员删除

#24


这个例子没有转换编码吧?

引用 9 楼 ChanGis 的回复:
把字符转换成对应的ASCII码。还是正常的循环语句。

#25


ABDCBDCB
面试题吧,我上次也遇到了!!!!!!!!!!

#26


引用
没什么不可以的,for 语法
for (初始化语句; 每次循环体开始前判断是否继续循环的布尔表达式; 每次循环体后的执行语句)

其中,只有中间这个需要布尔表达,其余两个,基本上,是个语句就可以了。


结合大家讲的,然后debug一下,一目了然啊。
for(foo('A');foo('B')&&(i<2);foo('C'))
{  
   i++;  
   foo('D');  
}  
1.其实foo('A');就是初始化条件,只会执行一次,所以第一个打印的肯定是A
2.因为i=0;循环条件是i<2 由此可知循环会执行2次,接着会输出B,然后执行i++;i就变成1了,在输出D
,在最后输出C,
一次循环后的结果是:ABDC
3.第二次循环的开始是foo('A');是初始条件所以不会执行,直接从foo('B')开始,输出B,然后i为1,且小于2,此时循环体内再次执行i++;i的值为2了,再次输出D,最后输出C
第二次循环输出:BDC
4.然后循环再次执行for(foo('A');foo('B')&&(i<2);foo('C'))
直接输出B,i的值在第二轮循环后的值变成了2,2<2不成立,终止循环,输出B


最后答案为:ABDCBDCB
希望对你有帮助!

#27


for循环执行的顺序   首先是初始化语句      
开始执行  判断语句    执行循环体  执行步进     再进行判断依次重复这几个步骤直到 判断语句结果为假

#28


ABDCBDCB,应该是这个。

#29


引用 8 楼 Ada168855 的回复:
上面那段代码是很经典的,可以帮助你理解for循环语句
我咋觉得是没有意义的呢