class FF {
char a;
public boolean Name(char a) {
System.out.println(a);
return true;
}
}public class FFF extends FF {
/**
* @param args
*/
public static void main(String[] args) {
FF f=new FF();
int i=0;
for(f.Name('A');f.Name('B')&&i<3;f.Name('C'))
{
System.out.println('D');}
}}
char a;
public boolean Name(char a) {
System.out.println(a);
return true;
}
}public class FFF extends FF {
/**
* @param args
*/
public static void main(String[] args) {
FF f=new FF();
int i=0;
for(f.Name('A');f.Name('B')&&i<3;f.Name('C'))
{
System.out.println('D');}
}}
ABDC BDC BDC for(表达式1;表达时2;表达式3)
{
表达式4;
}表达式1 --〉表达时2 --〉表达式4 --〉表达时2 --〉表达式4 --〉表达式3
不过这个程序本身进入死循环了.
在FOR循环里面加个i++的话,答案就可以相对容易写了.
不然还要说明一下按某一规律的循环.
class FF {
char a;
public boolean Name(char a) {
System.out.println(a);
return true;
}
}public class FFF extends FF {
/**
* @param args
*/
public static void main(String[] args) {
FF f=new FF();
int i=0;
for(f.Name('A');f.Name('B')&&i<2;f.Name('C'))
{++i;
System.out.println('D');}
}}
不好意思,是我刚刚在eclipse中调试的时候修改了几下,没改过来.现在这个是原题.
顺便问一下,里面的++i换成i++结果一样,不懂?
好象只考察了一个FOR语句的调用顺序.
考java中的for的运算顺序,结果是:
ABDC BDC BDC for(表达式1;表达时2;表达式3)
{
表达式4;
}表达式1 --〉表达时2 --〉表达式4 --〉表达时2 --〉表达式4 --〉表达式3 ==========
好象是:
表达式1 --〉表达时2 --〉表达式4 --〉表达式3--〉表达时2 --〉表达式4 --〉表达式3吧?
表达式1 --〉表达时2 --〉表达式4 --〉表达式3--〉
表达时2 --〉表达式4 --〉表达式3A--〉B--〉D--〉C
B--〉D--〉C
B
D
C
B
D
C
B <--最后還要輸出
B--〉D--〉C
正确的答案.
B--〉D--〉C
正确的答案.
====================
还要一个B吧?
现在来看这个 int i=0;f.Name('B')&&i<2;//f.Name('B')永远为true;i的初始值为0所以
//i永远都小于2。因此f.Name('B')&&i<2表达式永远为true。这样就是一个死循环!for(f.Name('A');f.Name('B')&&i<3;f.Name('C')){ i++;//当i被赋值到2时循环就结束。
System.out.println('D');}
结果是:
A
B
D
C
B
D
C
B
D
C
B