2016-02-26 2 views
-1

Newb Java programmeur ici, Pourquoi cette calculatrice ne calcule-t-elle pas?Java - Calculatrice d'impôt simple en utilisant les instructions If et if

Le programme doit entrer le revenu de l'utilisateur, puis produire son impôt fédéral en fonction des calculs.

Règles fiscales fédérales: 15% au premier 45282 $ de revenu imposable, + 20,5% sur la prochaine 45281 $ de revenu imposable (sur la partie du revenu imposable sur 45282 $ jusqu'à 90563 $), + 26 % sur le prochain 49825 $ de revenu imposable (sur la partie du revenu imposable sur 90563 $ jusqu'à 140388 $), +

entrée:
Entrez marque: 85
sortie:
année est: A
entrée:
Entrez marque: 110
sortie:
Entrez une valeur comprise entre 0 et 100
entrée:
Entrez marque: 79,5
sortie:
Grade est: B +
entrée:
Entrez marque : -10
sortie:
Entrez une valeur comprise entre 0 et 100 29% sur le prochain 59612 $ de revenu imposable (sur la partie du revenu imposable plus 140388 $ à 200 000 $ ), + 33% du revenu imposable de plus de 200 000 $.

package practiceproblab4; 

import java.util.Scanner; 
/** 
* 
* @author JAVA NEWB 
*/ 
public class PracticeProbLab4 { 

/** 
* @param args the command line arguments 
*/ 
public static void main(String[] args) 
{ 

Scanner sc = new Scanner(System.in); 
System.out.println("Enter your Income: "); 
String In = sc.nextLine(); 
Double Income = Double.parseDouble(In); 

calculateAndPrintTax(Income); 
System.out.println("Your taxes are: " + TotalTax); 
} 

static double calculateAndPrintTax(double Income, double Tax) 
{ 
    double tax; 
    double difftax1; 
    double difftax2; 
    double difftax3; 
    double difftax4; 
    double TotalTax; 

    if ((Income >= 45282) && (Income <= 200000)) 
    { 
     if(Income<=45282) 
     { 
      tax = 45282 * 0.15; 
      TotalTax = tax; 
     } 
     else if (Income > 45282 && Income <= 90653) 
     { 
      tax = 45282 * 0.15; 
      difftax1 = (Income - 45282)* .205; 
      TotalTax = tax + difftax1; 
     } 
     else if ((Income >90563) && (Income <= 140388)) 
     { 
      tax = 45282 * 0.15; 
      difftax1 = (Income - 45282) * .205; 
      difftax2 = (Income - 90563) * 0.26; 
      TotalTax = tax + difftax1 + difftax2; 
     } 
     else if ((Income > 140388) && (<= 200000)) 
     { 
      tax = 45282 * 0.15; 
      difftax1 = (Income - 45282) * .205; 
      difftax2 = (Income - 90563) * 0.26; 
      difftax3 = (Income - 140388) * 0.29; 
      TotalTax = tax + difftax1 + difftax2 + difftax3; 
     } 
     else if ((Income > 200000)) 
     { 
      tax = 45282 * 0.15; 
      difftax1 = (Income - 45282) * .205; 
      difftax2 = (Income - 90563) * 0.26; 
      difftax3 = (Income - 140388) * 0.29; 
      difftax4 = (Income - 200000) * 0.33; 
      TotalTax = tax + difftax1 + difftax2 + difftax3 + difftax4; 
     } 
    else ((Income > 200000)) 
      {  
      tax = 45282 * 0.15; 
      difftax1 = (Income - 45282) * .205; 
      difftax2 = (Income - 90563) * 0.26; 
      difftax3 = (Income - 140388) * 0.29; 
      difftax4 = (Income - 200000) * 0.33; 
      TotalTax = tax + difftax1 + difftax2 + difftax3 + difftax4; 
      return TotalTax; 
      } 
    } 
} 
} 
+0

Quelle exception obtenez-vous? – ramasCoder

+0

Un problème qui saute est que «double TotalTax» est déclaré dans «calculateAndPrintTax». Cela signifie qu'il n'est pas visible dans la méthode 'main' lorsque vous essayez d'imprimer' TotalTax' –

+0

Un autre problème: 'calculateAndPrintTax' nécessite 2 paramètres, mais vous ne passez qu'un seul argument dans' main' –

Répondre

1

d'abord tout ce que vous imprimez rien ici (parce que vous ne l'avez pas initialisez TotalTax partout dans votre méthode main):

calculateAndPrintTax(Income); 
System.out.println("Your taxes are: " + TotalTax); 

Ce que vous devez faire est de déclarer en principal et accepter la retour valeur de votre méthode:

double TotalTax; 

TotalTax = calculateAndPrintTax(Income); 
System.out.println("Your taxes are: " + TotalTax); 

, vous devez également supprimer le retour dans la partie else de calculateAndPrintTax vous devez le mettre en dehors de la if/elseif/else clause:

if{ 
// code here 
} 
else if{ 
// code here 
} 
else{ 
// code here 
} 
return TotalTax; 
+0

Pour ajouter à cela, vous devez pour changer calculateAndPrintTax (double revenu, double imposition) en calculateAndPrintTax (double revenu). – ramasCoder

+0

Lorsque les modifications que vous avez suggérées sont faites, je reçois encore deux erreurs –

+0

TotalTax = calculateAndPrintTax (Income); est souligné en rouge et d'autre ((revenu> 200000)) est également souligné en rouge –