当前位置: 技术问答>java相关
帮我看看,我做练习时出现的问题,真的很奇怪
来源: 互联网 发布时间:2015-04-21
本文导语: 我在java IntAdd.class时出现问题,下面是我的源程序代码: class IntAdd{ public static void main(String args[]) { int a=1; int b=a++; int B=++a; int c=B*b; boolean d1=c>a; boolean d2=B!=b; System.out.println("nnnnn……………………………………...
我在java IntAdd.class时出现问题,下面是我的源程序代码:
class IntAdd{
public static void main(String args[])
{
int a=1;
int b=a++;
int B=++a;
int c=B*b;
boolean d1=c>a;
boolean d2=B!=b;
System.out.println("nnnnn……………………………………………………………………");
System.out.println("int a=1的结果:"+a+"n(this result??? i don't konw why this result?! i tink a=1)n");
System.out.println("int b=a++的结果:"+b+"n(i think b=2)n");
System.out.println("int B=++a的结果:"+B+"n(i think B=2)n");
System.out.println("int c=B*b的结果:"+c+"n(i think c=4)n");
System.out.println(" ");
if(d1=false)
System.out.println("d1=c>a="+d1+"nYe!i'm right!");
else
System.out.println("d1=c>a="+d1+"nOh!my mistake!");
System.out.println(" ");
if(d2!=true)
System.out.println("d2=B!=b"+d2+"nHa!i konw my rigt!");
else
System.out.println("d2=B!=b="+d2+"nHe!i try!");
System.out.println("……………………………………………………………………");
System.out.println("为什么上面的结果不是我所想象的?n我没有设置int a=3啊!n而且b=1就更奇怪了");
}
}
而IntAdd2.txt在我java时,为什么出现的是一个死循环?源程序如下:
class IntAdd2{
public static void main(String ages[])
{
byte a=2;
for(a=0;a int b; a = a; a=a+1; //so a=2,b=1;
2. int B=++a; 相当于=> int B; a = a+1; B=a; //so a=3;
3. IntAdd2并不是死循环,结果如下:
E:problem>java IntAdd2
a=0
a=1
a=2
a=3
a=4
a=5
a=6
a=7
a=8
a=9
a=10
E:problem>
class IntAdd{
public static void main(String args[])
{
int a=1;
int b=a++;
int B=++a;
int c=B*b;
boolean d1=c>a;
boolean d2=B!=b;
System.out.println("nnnnn……………………………………………………………………");
System.out.println("int a=1的结果:"+a+"n(this result??? i don't konw why this result?! i tink a=1)n");
System.out.println("int b=a++的结果:"+b+"n(i think b=2)n");
System.out.println("int B=++a的结果:"+B+"n(i think B=2)n");
System.out.println("int c=B*b的结果:"+c+"n(i think c=4)n");
System.out.println(" ");
if(d1=false)
System.out.println("d1=c>a="+d1+"nYe!i'm right!");
else
System.out.println("d1=c>a="+d1+"nOh!my mistake!");
System.out.println(" ");
if(d2!=true)
System.out.println("d2=B!=b"+d2+"nHa!i konw my rigt!");
else
System.out.println("d2=B!=b="+d2+"nHe!i try!");
System.out.println("……………………………………………………………………");
System.out.println("为什么上面的结果不是我所想象的?n我没有设置int a=3啊!n而且b=1就更奇怪了");
}
}
而IntAdd2.txt在我java时,为什么出现的是一个死循环?源程序如下:
class IntAdd2{
public static void main(String ages[])
{
byte a=2;
for(a=0;a int b; a = a; a=a+1; //so a=2,b=1;
2. int B=++a; 相当于=> int B; a = a+1; B=a; //so a=3;
3. IntAdd2并不是死循环,结果如下:
E:problem>java IntAdd2
a=0
a=1
a=2
a=3
a=4
a=5
a=6
a=7
a=8
a=9
a=10
E:problem>
|
100超出了byte的范围
|
第一个你对++看来还是不明白,测试程序写短一些,好检查
第二个,我没用过byte,不知你是否清楚他的用法?你的程序中是否存在位移?
第二个,我没用过byte,不知你是否清楚他的用法?你的程序中是否存在位移?