0

こんにちは、ここで計算を行うのに助けが必要でした。シングルがある行で、計算に数値を追加したいのですが、数値自体を文に書いているかのように追加するだけです。計算のように追加するにはどうすればよいですか。非常に行き詰まっており、助けが必要です。(コードの最後の行です)。また、「s」または「m」のいずれかのみを入力したいので、ユーザーが入力できる文字の量を制限する方法を知りたいと思っていました。たとえば、「g」のような文字を使用しないように、これらの 2 つだけに制限するにはどうすればよいでしょうか。

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 + ".");
  }

  }
 }
4

2 に答える 2

1

入力の制限に関する 2 番目の質問に答えるには、switch case ステートメントを使用してみてください。を使用すると、 がまたはのいずれとも等しくないdefault場合のコードを記述できます。do-while ループを作成して、 がまたはと等しくなるまで入力を求め続けることもできます。maritalStatus"s""m"maritalStatus"s""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))); 
于 2015-10-05T02:19:39.927 に答える
0

必要なのは 1 つだけですScanner。テストでを使用できelseますincometax一度計算してから、フォーマットされたIOで表示することをお勧めします。何かのようなもの、

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);
}
于 2015-10-05T02:16:52.737 に答える