簡體   English   中英

匯總不同計算的結果

[英]Aggregating results of different calculations

這是我在這里的第一篇文章,所以請原諒我遇到任何格式錯誤。

因此,如您所見,我的程序要求顯示性別,事故數量和車輛年份以顯示虛假的保險報價。

基於所有這些信息,我需要在最后加上保險費用的小計。

我的代碼一直工作到“總成本”注釋(將其全部發布以供參考)。 我被困在那里,因為性別有不同的基本金額。 我試圖找出一種方法,如果它與用戶輸入的性別匹配,則僅執行一個if語句。

有任何想法嗎?

import java.util.*;
public class Insurance {
  public static void main(String [] args) {
    Scanner scanner = new Scanner(System.in);

   int currentYear = 2017; //used for calculating the age of the users car
   int maleGender = 1000;
   int femaleGender = 500;

   //Letting user know they are inputting data for car insurance purposes
   System.out.println("Car insurance questionnaire. Please input correct information when prompted.");

   // gender information from user
   System.out.println("What is your gender? m/f");
   String gender = scanner.next();

   // accident quantity information from user
   System.out.println("How many accidents have you had?");
   int acc = scanner.nextInt();

   // car year information from user
   System.out.println("What year was your car manufactured?");
   int carAge = scanner.nextInt();

   //if statements which refer to the users data input
    if (gender.equals("m")) {
     System.out.println("You are a male.\nThe base cost is $1000."); 
     } else {
     System.out.println("You are a female.\nThe base cost is $500.");
     }


     if (acc == 0) {
     System.out.println("You have no accidents. Insurance increase is $0.");
     } else if (acc >= 1) {
     System.out.println("You have " + acc + " accidents. Insurance increase is $" + acc * 100 + ".");
     }


     if (carAge >= 2007) {
      System.out.println("Your car is " + (currentYear - carAge) + " years old.\nYour car is still in warranty, no savings added.");
      } else 
      System.out.println("Your car is out of warranty, final cost is halved.");

      //Total cost
     /*
      if (carAge <= 2007) {
      System.out.println("Your total price is $" + ((acc * 100 + femaleGender) / 2) + ".");
      } else 
      System.out.println("Your total price is $" + (acc * 100 + femaleGender) + ".");
        */


 }
}

我不完全確定您要如何計算結果,但是如果不想一直使用femaleGender ,但取決於性別的不同值,那么類似這樣的方法可能會有所幫助:

int baseAmount = gender.equals("m") ? maleGender : femaleGender;
if (carAge <= 2007) {
    System.out.println("Your total price is $" + ((acc * 100 + baseAmount ) / 2) + ".");
} else 
    System.out.println("Your total price is $" + (acc * 100 + baseAmount ) + ".");
}
int genderCost;

...

if (gender.equals("m")) {
    System.out.println("You are a male.\nThe base cost is $1000.");
    genderCost = maleGender;
} else {
    System.out.println("You are a female.\nThe base cost is $500.");
    genderCost = femaleGender;
}

...

if (carAge <= 2007) {
    System.out.println("Your total price is $" + ((acc * 100 + genderCost) / 2) + ".");
} else 
    System.out.println("Your total price is $" + (acc * 100 + genderCost) + ".");
}

在評估性別輸入變量時,將性別的金額放入變量genderCost ,並在計算總數時使用genderCost

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM