Java:如何获取return语句并返回所有值

Java:如何获取return语句并返回所有值,java,Java,我试着写一个表格,在4个不同的申报类别下,显示从500000到60000的增量应纳税所得额的应纳税所得额。采用一种方法,代码中的返回语句只打印出四个归档类别列中的一个。请问我怎样才能把剩下的栏目打印出来 public class TaxableIncome { public static void main(String[] args) { System.out.println("Taxable Income\t\t Single\t\t Married Joint\t\t

我试着写一个表格,在4个不同的申报类别下,显示从500000到60000的增量应纳税所得额的应纳税所得额。采用一种方法,代码中的返回语句只打印出四个归档类别列中的一个。请问我怎样才能把剩下的栏目打印出来

public class TaxableIncome {

   public static void main(String[] args) {
       System.out.println("Taxable Income\t\t Single\t\t Married Joint\t\t MarriedSeerate\t\t HeadofaHouse");
       System.out.println("-----------------------------------------------------------------------------------------------------");
       double Tincome;
       int profile=1;
       for(Tincome=50000; Tincome<=60000; Tincome+=50) { 
           System.out.println( Tincome +"\t\t" + computetax(profile, Tincome));
       }
    }

    public  static double computetax( int status , double income) {
        double tax;
        double single=0;
        double mjoint=0;
        double mseperate=0;
        double head=0;

        for(status=1;status<=4;status++) {
            if(status==1) {  
                tax = 8350*.10 + (33950-8350)*0.15 + (income- 33950)*0.25;
                single= tax;
            }
            if(status==2) {
                tax = 16700*0.10 + (income-16700)*0.15;
                mjoint = tax;
            }   
            if(status==3 ) {
                tax =  8350*0.10 + (33950-8350)*0.15 + (income-33950)*0.25;
                mseperate= tax;
            }
            if(status ==4){
                tax = 11950*0.10 + (45500-11950)*0.15 +(income-45500)* 0.25;
                head =tax;
            }    
        }
    return (single);
    }
}
公共类可征税收入{
公共静态void main(字符串[]args){
System.out.println(“应税收入\t\t单身\t\t已婚联名\t\t已婚公寓\t\t总部”);
System.out.println(“-------------------------------------------------------------------------------------------------------------------------”;
双罐头;
int profile=1;

对于(Tincome=50000;Tincome您计算了四次
tax
的值,然后丢弃该值并仅返回
single
的单个值

将循环打开状态移出
computetax
并移入调用者

编辑:鉴于您正在自学课程,这里有一个版本应该在您的限制范围内工作。

它仍然需要很多改进,但会让你更进一步


公共类应纳税所得额{

   public static void main(String[] args) {
       System.out.println("Taxable Income\t\t Single\t\t Married Joint\t\t MarriedSeerate\t\t HeadofaHouse");
       System.out.println("-----------------------------------------------------------------------------------------------------");
       double Tincome;
       int profile=1;
       for(Tincome=50000; Tincome<=60000; Tincome+=50) { 
           double single=computetax(1, Tincome);
           double joint=computetax(2, Tincome);
           double seperate=computetax(3, Tincome);
           double head=computetax(4, Tincome);
           System.out.println( Tincome +"\t\tsingle:\t" + single + "\tjoint:\t" + joint + "\tseparate:\t" + separate + "\thead:\t" + head);
       }
    }

    public  static double computetax( int status , double income) {
        double tax;
        double single=0;
        double mjoint=0;
        double mseperate=0;
        double head=0;

            if(status==1) {  
                tax = 8350*.10 + (33950-8350)*0.15 + (income- 33950)*0.25;
                single= tax;
            }
            if(status==2) {
                tax = 16700*0.10 + (income-16700)*0.15;
                mjoint = tax;
            }   
            if(status==3 ) {
                tax =  8350*0.10 + (33950-8350)*0.15 + (income-33950)*0.25;
                mseperate= tax;
            }
            if(status ==4){
                tax = 11950*0.10 + (45500-11950)*0.15 +(income-45500)* 0.25;
                head =tax;
            }    
        }
    return (single);
    }
}
publicstaticvoidmain(字符串[]args){
System.out.println(“应税收入\t\t单身\t\t已婚联名\t\t已婚公寓\t\t总部”);
System.out.println(“-------------------------------------------------------------------------------------------------------------------------”;
双罐头;
int profile=1;

对于(Tincome=50000;Tincome或使用
System.out.print()
输出在
computeTax
中计算的每个值,然后执行
System.out.println();
以获得回车。

您应该将所有计算结果滚动到自己的对象中并返回其中一个

static class TaxDetails {

    double single = 0;
    double mjoint = 0;
    double mseperate = 0;
    double head = 0;
}

public static TaxDetails computetax(double income) {
    TaxDetails details = new TaxDetails();
    details.single = 8350 * .10 + (33950 - 8350) * 0.15 + (income - 33950) * 0.25;
    details.mjoint = 16700 * 0.10 + (income - 16700) * 0.15;
    details.mseperate = 8350 * 0.10 + (33950 - 8350) * 0.15 + (income - 33950) * 0.25;
    details.head = 11950 * 0.10 + (45500 - 11950) * 0.15 + (income - 45500) * 0.25;
    return details;
}

public void test() {
    System.out.println("Taxable Income\t\t Single\t\t Married Joint\t\t MarriedSeerate\t\t HeadofaHouse");
    System.out.println("-----------------------------------------------------------------------------------------------------");
    for (double income = 50000; income <= 60000; income += 50) {
        TaxDetails tax = computetax(income);
        System.out.println(income + "\t\t" + tax.single + "\t\t" + tax.mjoint + "\t\t" + tax.mseperate + "\t\t" + tax.head);
    }
}
静态类详细信息{
双单=0;
双mjoint=0;
双msoperate=0;
双头=0;
}
公共静态税(双倍收入){
TaxDetails details=新的TaxDetails();
单身=8350*.10+(33950-8350)*0.15+(收入-33950)*0.25;
details.mjoint=16700*0.10+(收入-16700)*0.15;
details.msoperate=8350*0.10+(33950-8350)*0.15+(收入-33950)*0.25;
详细信息。总人数=11950*0.10+(45500-11950)*0.15+(收入-45500)*0.25;
退货详情;
}
公开无效测试(){
System.out.println(“应税收入\t\t单身\t\t已婚联名\t\t已婚公寓\t\t总部”);
System.out.println(“-------------------------------------------------------------------------------------------------------------------------”;

对于(double income=50000;income Return一个数组或一个包含您需要的所有值的对象。@X.L.Ant我正在自学,还没有上数组和对象课程。谢谢。我将状态循环移到了caller中,我还了税,但输出仍然没有改变。不过,我喜欢@OldCurmudgeon的解决方案。我刚刚注意到您正在将
配置文件
传递到computetax,您希望在那里获得
状态
,因此在您的测试中总是只有1。