2015-10-05 2 views
0

Salut J'avais besoin d'aide pour faire un calcul ici. Sur la ligne où il a un seul, je veux ajouter le nombre au calcul mais il l'ajoute simplement comme si im juste écrire le nombre lui-même dans une phrase. Comment puis-je l'ajouter comme si c'est un calcul, je suis très coincé et besoin d'aide. (C'est la dernière ligne de code). Je voulais aussi savoir comment je peux limiter la quantité de lettres qu'un utilisateur peut entrer, puisque je veux seulement qu'il entre 's' ou 'm'. Comment puis-je les limiter à seulement ces deux afin qu'ils n'utilisent pas une lettre comme 'g' par exemple, puisque cela ne fonctionnera pas.Comment ajouter un entier dans une entrée string, java et limit

import java.util.Scanner; 
public class FedTaxRate 
{ 
public static void main(String[] args) 
{ 
    String maritalStatus; 
    double income; 
    int single = 32000; 
    int married = 64000; 

    Scanner status = new Scanner(System.in); 
    System.out.println ("Please enter your marital status: "); 
    maritalStatus = status.next(); 


    Scanner amount = new Scanner(System.in); 
    System.out.print ("Please enter your income: "); 
    income = amount.nextDouble(); 

    if (maritalStatus.equals("s") && income <= 32000) 
    { 
    System.out.println ("The tax is " + income * 0.10 + "."); 
    } 
    else if (maritalStatus.equals("s") && income > 32000) 
    { 
    System.out.println ("The tax is " + (income - 32000) * 0.25 + single + "."); 
    } 

    } 
} 
+0

Utilisez les crochets, 'System.out.println ("La taxe est" + (revenu * 0,10) + "")' – MadProgrammer

+0

le produit de cette ligne était correcte im poser des questions sur celui-ci. else if (maritalStatus.equals ("s") && revenu> 32000) { System.out.println ("La taxe est" + (revenu - 32000) * 0,25 + simple + ""); } – McDodger

+0

Même chose, Enroulez le calcul complet avec entre parenthèses – MadProgrammer

Répondre

1

Pour répondre à votre deuxième question sur la limitation de l'entrée, vous pouvez essayer d'utiliser une instruction de casse. Le default vous permet d'écrire du code pour le cas où maritalStatus n'est pas égal à "s" ou "m". Vous pouvez également créer une boucle do-while pour continuer à demander une entrée jusqu'à ce que maritalStatus soit égal à "s" ou "m".

Scanner status = new Scanner(System.in); 
String maritalStatus = status.nextLine(); 

do { 
    System.out.println("Enter your marital status.") 
    switch (maritalStatus) { 
     case "s": 
      // your code here 
      break; 
     case "m": 
      // your code here 
      break; 
     default: 
      // here you specify what happens when maritalStatus is not "s" or "m" 
      System.out.println("Try again."); 
      break; 
     } 
    // loop while maritalStatus is not equal to "s" or "m" 
    } while (!("s".equalsIgnoreCase(maritalStatus)) && 
      !("m".equalsIgnoreCase(maritalStatus))); 
0

Vous n'avez besoin que d'un Scanner. Vous pouvez utiliser un else avec votre test income. Je vous suggère de calculer une fois que le tax, puis l'afficher avec IO formaté. Quelque chose comme,

public static void main(String[] args) { 
    int single = 32000; 
    int married = 64000; 
    Scanner sc = new Scanner(System.in); 
    System.out.println("Please enter your marital status: "); 
    String maritalStatus = sc.next(); 

    System.out.print("Please enter your income: "); 
    double income = sc.nextDouble(); 
    double tax; 
    if ("s".equalsIgnoreCase(maritalStatus)) { 
     if (income <= single) { 
      tax = income * 0.10; 
     } else { 
      tax = (income - single) * 0.25 + single; 
     } 
    } else { 
     if (income <= married) { 
      tax = income * 0.10; 
     } else { 
      tax = (income - married) * 0.25 + married; 
     } 
    } 
    System.out.printf("The tax is %.2f.%n", tax); 
}