| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 991 人关注过本帖
标题:[求助]跨函数调用变量
只看楼主 加入收藏
goodscript
Rank: 1
等 级:新手上路
帖 子:18
专家分:0
注 册:2007-6-7
收藏
 问题点数:0 回复次数:12 
[求助]跨函数调用变量
在一个方法里面输入一个数值作为一个变量 要是想在另一个方法里调用
该怎么调用,菜鸟问题 还请高手不吝赐教!!!
搜索更多相关主题的帖子: 变量 函数 
2007-09-10 14:00
hwoarangzk
Rank: 4
来 自:冰封王座
等 级:贵宾
威 望:12
帖 子:1894
专家分:0
注 册:2007-7-17
收藏
得分:0 

你可以在类里面设置一个变量,这样同一个类的所有方法都可以访问这个变量了


I'm here, as always...
2007-09-10 14:06
风月_无边
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:60
帖 子:2960
专家分:652
注 册:2007-1-19
收藏
得分:0 
定義為公共變量就可以了

我的网站 http://www.
2007-09-10 16:15
hwoarangzk
Rank: 4
来 自:冰封王座
等 级:贵宾
威 望:12
帖 子:1894
专家分:0
注 册:2007-7-17
收藏
得分:0 
公共变量倒无所谓,只要是同一个类的方法就可以用了,一般的做法是变量定义为private,方法定义为public,这样做比较规范

I'm here, as always...
2007-09-10 16:19
goodscript
Rank: 1
等 级:新手上路
帖 子:18
专家分:0
注 册:2007-6-7
收藏
得分:0 

首先谢谢这几位好心人的回答
可能是我的问题问的不够好 我先上代码吧
code:
import java.io.*;
import java.util.*;
public class PayTax{

//public double MoneyNumber ;
//private double MoneyNumber;

public static void main (String args[]){//输入你的工资,并计算出的你的个人所得税 和个人收入
PayTax pr = new PayTax();
System.out.println("请输入你的工资:");
double MoneyNumber = new Scanner(System.in).nextDouble();
double ShuiE = MoneyNumber-1600;
if(ShuiE<=0)
pr.print(0);

if(ShuiE>0&&ShuiE<=500){

pr.print(ShuiE*0.05-0);
}
if(ShuiE>500&&ShuiE<=2000){

pr.print(ShuiE*0.10-25);
}
if(ShuiE>2000&&ShuiE<=5000){

pr.print(ShuiE*0.15-125);
}
if(ShuiE>5000&&ShuiE<=20000){

pr.print(ShuiE*0.20-375);
}
if(ShuiE>20000&&ShuiE<=40000){

pr.print(ShuiE*0.25-1375);
}
if(ShuiE>40000&&ShuiE<=60000){

pr.print(ShuiE*0.30-3375);
}
if(ShuiE>60000&&ShuiE<=80000){
pr.print(ShuiE*0.35-6375);

}
if(ShuiE>80000&&ShuiE<=100000){

pr.print(ShuiE*0.40-10375);
}
if(ShuiE>100000){
pr.print(ShuiE*0.45-15375);


}
}
//确认你输入的数值,输出你的个人收入和个人所得税,并给你税收的计算公式以便用户核对
public void print (double NaE) {
System.out.println("请再输入一次:");
double ReMoneyNumber = new Scanner(System.in).nextDouble();

if (ReMoneyNumber==MoneyNumber){

System.out.println("工资的计算公式:");
System.out.println("应纳个人所得税税额=应纳税所得额×适用税率-速算扣除数");
System.out.println("级数 全月应纳税所得额 税率% 速算扣除法(元)");
System.out.println("1 不超过500元的 5 0");
System.out.println("2 超过500元至2000元的部分 10 25");
System.out.println("3 超过2000元至5000元的部分 15 125");
System.out.println("4 超过5000元至20000元的部分 20 375");
System.out.println("5 超过20000元至40000元的部分 25 1375");
System.out.println("6 超过40000元至60000元的部分 30 3375");
System.out.println("7 超过60000元至80000元的部分 35 6375");
System.out.println("8 超过80000元至100000元的部分 40 10375");
System.out.println("9 超过100000元的部分 45 15375");
System.out.println("你应缴纳的个人所得税为:"+NaE);
System.out.println("你是个人收入为:"+(ReMoneyNumber-NaE));

}
else
System.out.println("你两次输入的数值不一致!!!");

}

}

//end code
按照上面的程序编译器会报一个错误:找不到MoneyNumber
所以就家上了这句://public double MoneyNumber ;
//private double MoneyNumber;(
这两句任选一句就可以了)
加上了这句后 编译器 没有报错 但是得到的结果错了
不管你输入的是什么最后都会执行这个语句:System.out.println("你两次输入的数值不一致!!!");
也就是说这个ReMoneyNumber==MoneyNumber 语句永远都不会成立;
这就是问题的所在了 因为MoneyNumber 得到的值并不是第一次在main函数中输入的值
还请哪位高手能帮忙解决一下这个问题
每个人知道,出学者都很容易闹笑话 但是不能因为怕闹笑话就不敢问了
就为了这么个小问题我就写了这么一大堆,所以请高手不要取笑!!!谢谢

[此贴子已经被作者于2007-9-12 15:09:40编辑过]

2007-09-12 15:04
hwoarangzk
Rank: 4
来 自:冰封王座
等 级:贵宾
威 望:12
帖 子:1894
专家分:0
注 册:2007-7-17
收藏
得分:0 

这个是因为只有整型的数据才能比较是否相等,浮点型的不能直接用==比较,只能确定一个比较的范围,你改成整型就可以了


I'm here, as always...
2007-09-12 15:11
hwoarangzk
Rank: 4
来 自:冰封王座
等 级:贵宾
威 望:12
帖 子:1894
专家分:0
注 册:2007-7-17
收藏
得分:0 
没有人会笑你的,只要自己努力就行,加油吧

I'm here, as always...
2007-09-12 15:12
goodscript
Rank: 1
等 级:新手上路
帖 子:18
专家分:0
注 册:2007-6-7
收藏
得分:0 
回复:(hwoarangzk)这个是因为只有整型的数据才能比...

谢谢!!
不过如果我想用 浮点型的话 因为工资有的时候也有小数点
这 判断语句该怎么改
if (ReMoneyNumber==MoneyNumber)

好象改成了int类型结果还是跟原来的一样有错误

[此贴子已经被作者于2007-9-12 15:27:21编辑过]

2007-09-12 15:20
hwoarangzk
Rank: 4
来 自:冰封王座
等 级:贵宾
威 望:12
帖 子:1894
专家分:0
注 册:2007-7-17
收藏
得分:0 

import java.io.*;
import java.util.*;
public class PayTax{

static public int MoneyNumber;

public static void main (String args[]){//输入你的工资,并计算出的你的个人所得税 和个人收入
PayTax pr = new PayTax();
System.out.println("请输入你的工资:");
double MoneyNumber = new Scanner(System.in).nextInt();//红色的double去掉,否则就不是同一个MoneyNumber了
double ShuiE = MoneyNumber-1600;
if(ShuiE<=0)
pr.print(0);

if(ShuiE>0&&ShuiE<=500){

pr.print(ShuiE*0.05-0);
}
if(ShuiE>500&&ShuiE<=2000){

pr.print(ShuiE*0.10-25);
}
if(ShuiE>2000&&ShuiE<=5000){

pr.print(ShuiE*0.15-125);
}
if(ShuiE>5000&&ShuiE<=20000){

pr.print(ShuiE*0.20-375);
}
if(ShuiE>20000&&ShuiE<=40000){

pr.print(ShuiE*0.25-1375);
}
if(ShuiE>40000&&ShuiE<=60000){

pr.print(ShuiE*0.30-3375);
}
if(ShuiE>60000&&ShuiE<=80000){
pr.print(ShuiE*0.35-6375);

}
if(ShuiE>80000&&ShuiE<=100000){

pr.print(ShuiE*0.40-10375);
}
if(ShuiE>100000){
pr.print(ShuiE*0.45-15375);


}
}
//确认你输入的数值,输出你的个人收入和个人所得税,并给你税收的计算公式以便用户核对
public void print (double NaE) {
System.out.println("请再输入一次:");
double ReMoneyNumber = new Scanner(System.in).nextDouble();

if (ReMoneyNumber==MoneyNumber){

System.out.println("工资的计算公式:");
System.out.println("应纳个人所得税税额=应纳税所得额×适用税率-速算扣除数");
System.out.println("级数 全月应纳税所得额 税率% 速算扣除法(元)");
System.out.println("1 不超过500元的 5 0");
System.out.println("2 超过500元至2000元的部分 10 25");
System.out.println("3 超过2000元至5000元的部分 15 125");
System.out.println("4 超过5000元至20000元的部分 20 375");
System.out.println("5 超过20000元至40000元的部分 25 1375");
System.out.println("6 超过40000元至60000元的部分 30 3375");
System.out.println("7 超过60000元至80000元的部分 35 6375");
System.out.println("8 超过80000元至100000元的部分 40 10375");
System.out.println("9 超过100000元的部分 45 15375");
System.out.println("你应缴纳的个人所得税为:"+NaE);
System.out.println("你是个人收入为:"+(ReMoneyNumber-NaE));

}
else
System.out.println("你两次输入的数值不一致!!!");

}

}

这个是整型的情况,如果有小数的话,你可以用round()将工资变成两位小数,然后就可以比较了


I'm here, as always...
2007-09-12 15:45
hwoarangzk
Rank: 4
来 自:冰封王座
等 级:贵宾
威 望:12
帖 子:1894
专家分:0
注 册:2007-7-17
收藏
得分:0 
忘了,整型的话还要把print方法里面的ReMoneyNumber改成int

I'm here, as always...
2007-09-12 15:47
快速回复:[求助]跨函数调用变量
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.019952 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved