class Test_one{
public static void main(String[] args){
int a=2;
int b=1;
for(int c=0; c<5; c++){
if(( ++a>2 )&&(++b>2)){
a++;
}
}
System.out.println("a="+a +" b="+b);
}
}
看看输出什么?
public static void main(String[] args){
int a=2;
int b=1;
for(int c=0; c<5; c++){
if(( ++a>2 )&&(++b>2)){
a++;
}
}
System.out.println("a="+a +" b="+b);
}
}
看看输出什么?
i++ 的值是i ++i的值是 i+1
知道这些就很好做了
a=11 b=6
(++b > 2) //既是 2 > 2 false
所以循环条件不成立,不执行a++,第一次循环后a=3, b=2
第二次后 a=4,b=3, if条件成立 a++,所以a=5,b=3
第三次 a=7,b=4
第四次 a=9,b=5
第五次 a=11,b=6
打印。
a的5次循环中自增5次,b自增1次,但因为5次循环都不满足if条件,所以if里的代码没执行到
class Test_one{
public static void main(String[] args){
int a=2;
int b=1;
for(int c=0; c<5; c++){
if(( ++a>2 )&&(++b>2)){
a++;
}
}
System.out.println("a="+a +" b="+b);
}
}
a=11 b=6
class Test_one{
public static void main(String[] args){
int a=2;
int b=1;
for(int c=0; c<5; c++){
if(( ++a>2 )&&(++b>2)){
a++;
}
}
System.out.println("a="+a +" b="+b);
}
}
相信仁兄对每一句代码懂!不懂,呵呵回帖给你解答!
这里仁兄没有用到变,要知道,每到程序到计算机,是这样输出的了?我说的不是什么编译,执行之类的,我说的是计算机要经过复杂的计才得到结果!好了,这里点到了!记住,这句话应用的好坏直接影响到你对代码的解读!
如果你理解了我的意思,那么你应该想到最后输出的a和佛如循环里的c一样经过了4次先加后用和4次用后自加
b经过多少次加后在用呢?4次,呵呵到这里,你猜把if(( ++a>2 )&&(++b>2))改为if(( ++a>3 )&&(++b>2))结果是多少呢?举一反三!相信你能掌握!
int a = 2;
int b = 1;
for (int c = 0; c < 5; c++) {
if (++a > 2 || ++b > 2) {
a++;
}
}
System.out.println("a=" + a + " b=" + b);这样写,或许能考到人
& 两个表达式都要执行同理
|两个表达式都要执行
||第一个表达式为true,第二个表达式不执行
a=5,b=3
a=7,b=4
a=9,b=5
a=11,b=6
第二次打印a=5
if((++b>2)&&(++a>2)){
a++;
}
a=5b=3c=1
a=7b=4c=2
a=9b=5c=3
a=11b=6c=4
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
int a=2;
int b=1;
for(int c=0; c<5; c++){
if(( (a++)>2 )||((b++)>2)){
a++;
}
}
System.out.println("a="+a +" b="+b);
} }a=11 b=2
public class Text { /**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
int a=2;
int b=1;
for(int c=0; c<5; c++){
if(( (a++)>2 )&&((b++)>2)){
a++;
}
}
System.out.println("a="+a +" b="+b);
} }
a=9 b=5 你得理解 可以有很多变化 面试很变态 基础很重要!