本文目录一览:
- 1、下面的Java程序中输出结果为什么是0,请讲明一下原因,谢谢
- 2、为什么运行这段Java代码后输出的结果是 0 而不是10?
- 3、java程序,运行结果为0
- 4、java 为什么执行结果是0 ?应该怎么改?求解!
- 5、java为什么输出是0
- 6、java 为什么输出都是0
下面的Java程序中输出结果为什么是0,请讲明一下原因,谢谢
我的看法
Inc inc = new Inc();
int i = 0;
inc.fermin(i);//这里方法不能修改int i这里的i值,毫无疑问,因为java是值传递,所以此事i=0
i = i++;// 首先这一句是分2布完成,第一i=0(操作1); 然后i++(操作2),但是等号优先级最低,所以先执行运算i++,然后执行i=0,所以这个结果始终为i的值0
System.out.println(i);
丛内存角度来考虑,JAVA里面赋值操作是,(假定i为0)
虚拟机先会在内存里面开辟新的区域b存放i的原始值, 假定区域a是i的初始内存位置,
然后完成i++, a里面变为1;
内存b里面还是0,
然后完成赋值操作,将b里面的值交给a,并且释放内存区域b,所以a里面还是0
为什么运行这段Java代码后输出的结果是 0 而不是10?
这里涉及到的是Java的初始化过程;
如上图所示,增加第9行,这样子你就可以看得明白一些了;
基本的初始化过程:首先运行构造方法,然后从第6行开始进行初始化,此时第7行还没有初始化,所以此时 j的值为0,因此i也就为0了;
如果把第6行和第7行的位置互换一下,运行一下 ,估计就能明白了。
java程序,运行结果为0
计算总分和平均分的类classes中,student是新实例,想要算之前输入的,需要通过参数传进去:
class classes
{
//Student student=new Student();
//public int s[]=new int[4];
int sum=0;
public void getTotalScore(Student student)
{
int k;
for(k=0;k=3;k++)
{
sum+=student.score[k];
}
System.out.println("总成绩"+sum);
}
public void getAverage()
{
double ave;
ave=sum/4;
System.out.println("平均成绩"+ave);
}
}
java 为什么执行结果是0 ?应该怎么改?求解!
sum 是一个变量,没有给 sum 赋值,所以是 0。
调用 a.Sum() 可以返回正确的结果。
System.out.println(a.Sum());
或者在构造方法中给 sum 赋值,如下:
this.sum = engsc + mathsc + comsc;
java为什么输出是0
a长度为3,里面有3个0
然后接下来参与运算的都是0了。所以最后结果肯定是0.
主要是你没初始化a里面的值。只是设了个长度为3
java 为什么输出都是0
你的e=5/9 e是double类型,而5和9都为int型
计算最后结果时会自动取整
最简单的解决方法是,乘以一个1.0