回 帖 发 新 帖 刷新版面

主题:我是新手,希望大家能帮忙!谢谢啦!

我刚编了一个java程序,但总是有一个错,大家来帮帮我,谢谢啦!
public class biancheng 
{   int sex;
    int salary;
    void manorwoman(int sexvalue)
    { switch(sexvalue)
        { case 0:
            System.out.println("I'm a man"); break;
          case 1:
            System.out.println("I'm a woman");  break;
          default:
            System.out.println("I'm not a man or woman");  
        }
    }
    void employed(int salaryvalue)
    { 
        if(salaryvalue==0)
        System.out.println("I don't have a job");
        if(salaryvalue>0)
        System.out.println("I have a job");}
     long income(int salary)
    { 
         System.out.println("My income is "+salary);
         [color=FF0000]return salary*0.9;[/color]
    }
    public static void main(String[] args)
    { 
        biancheng somebody=new biancheng();
        somebody.sex=0;
        somebody.salary=2000;
        somebody.manorwoman(somebody.sex);
        somebody.employed(somebody.salary);
        somebody.income(somebody.salary);
        long netincome=somebody.salary;
        System.out.println("My net income is "+netincome);
    }
}
出错的就在红的那个地方,大家运行一下看看,我不会粘截下来的图片,谢谢啦!

回复列表 (共8个回复)

沙发


 把 long income(int salary)中的long 换成double就行了!!

板凳


我还有点不太明白,为什么long  不行,而double可以呢?
还有,为什么结果的最后一行是“My net income is 2000”?
我想让它2000*0.9得出1800,怎么改就好了?谢谢啦!

3 楼

因为JAVA是强类型语言,double-->long属于强制转换,因此可以改写成 
long income(int salary)
{
        System.out.println("My income is "+salary);
        return (long)salary*0.9;
}

4 楼


我这样改过,
可是还是不对。
要不你用J2SDK试一试,真的不行。

5 楼

return (long)salary*0.9;

改为:
return (long)(salary*0.9);

应该就可以了.

6 楼


楼上的,
我运行了,能运行出来,
但是结果还是不对,我想要它得出1800,
也就是2000*0.9,
但是最后结果还是2000,
这是为什么?怎么样能得出1800啊?

7 楼

somebody.salary=2000;

        somebody.income(somebody.salary);
        long netincome=somebody.salary;
        System.out.println("My net income is "+netincome);

你这边对somebody.salary根本没做过变化

somebody.income(somebody.salary);
返回的值才是1800,这时somebody.salary仍然还是2000
把返回值赋给你想打印的netincome

8 楼


非常感谢,我知道了![em2]

我来回复

您尚未登录,请登录后再回复。点此登录或注册