日期:2014-05-20  浏览次数:20738 次

java for循环问题
java大虾求帮忙,帮忙看看这个程序的for循环结构的具体执行思路?
public class O1_2_14 {

  public O1_2_14() {
  }
   
   
}

class FooDemo{ 
static boolean foo(char c) { 
System.out.print(c); 
  return true; 
  } 
  public static void main(String[] args ) { 
  int i =0; 
  for ( foo('a'); foo('b')&&(i<2); foo('c')){ 
  i++ ; 
  foo('d'); 
  } 

}


------解决方案--------------------
for (1;2;3) {
4
}

整个结构就是:
1 -> 2 -> (4 -> 3 -> 2)*

终止条件就是 2

因为你的例子里面,2 是:foo('b')&&(i<2)
而foo()函数永远返回 true,所以实际上唯一终止循环的条件就是 (i<2) 不成立。
------解决方案--------------------
关键点在
 
static boolean foo(char c) {
System.out.print(c);
  return true;
  }
  public static void main(String[] args ) {
  int i =0;
  for ( foo('a'); foo('b')&&(i<2); foo('c')){
  i++ ;
  foo('d');
}

把‘a',’b‘,’c'带进
这个函数
static boolean foo(char c) {
System.out.print(c);
  return true;
  }

然后i初始值为0;每次循环都i++;
就行了