2016-10-02 2 views
-1

Я беру свой первый курс java и пишу программу, которая рассчитывает подоходный налог. Я получаю 3 идентичных ошибки, которые говорят «незаконный старт выражения» и указывают на звездочки в следующем коде. Я уверен, что делаю ошибку новобранец, но я не уверен, что исправить!Ошибка Java: незаконный запуск выражения

import java.util.Scanner; 

public class Lab02 
{ 
public static void main(String[] args) 
    { 
    Scanner input = new Scanner(System.in); 

    int exemptions; // Number of Exemptions 
    double grossSalary; // Gross Salary 
    double interestIncome; // Interest Income 
    double capitalGains; // Capital Gains 
    double charitableCont; // Charitable Contributions 

    double totalIncome; // Total Income 
    double adjustedIncome; // Adjusted Income 
    double totalTax; // Total Tax 


    System.out.print("Number of Exemptions: "); 
    exemptions = input.nextInt(); 

    System.out.print("Gross Salary: "); 
    grossSalary = input.nextDouble(); 

    System.out.print("Interest Income: "); 
    interestIncome = input.nextDouble(); 

    System.out.print("Capital Gains: "); 
    capitalGains = input.nextDouble(); 

    System.out.print("Charitable Contributions: "); 
    charitableCont = input.nextDouble(); 


    totalIncome = (grossSalary + interestIncome); 

    adjustedIncome = (totalIncome - (exemptions * 1500.00) - charitableCont); 


    if (adjustedIncome <= 10000) 
     totalTax0 = 0; 

     if (adjustedIncome > 10000) 
      totalTax1 = 15% * (adjustedIncome >= 32000 ? (22000) : (adjustedIncome - 10000)); 

      if (adjustedIncome > 32000) 
       totalTax2 = 23% * (adjustedIncome >= 50000 ? (18000) : (adjustedIncome - 32000)); 

       if (adjustedIncome > 50000) 
        totalTax3 = 28% * (adjustedIncome - 50000); 

    totalTax = totalTax0 + totaltax1 + totaltax2 + totaltax3; 


    System.out.printf("Total Income: $%.2f%n", totalIncome); // display Total Income 
    System.out.printf("Adjusted Income: $%.2f%n", adjustedIncome); // display Adjusted Income 
    System.out.printf("Total Tax: $%.2f%n", totalTax); // display Total Tax 

    } 
} 
+0

Кроме того, нет переменных 'totalTax [0-3]', объявленных где угодно, вам нужно либо объявить их, либо переписать логику. –

+0

Ваши инструкции 'if' вложены, как будто вы уверены, что они вложены внутри друг друга, но нет скобок' {} ', поэтому они не вставлены *, а ваши отступы вводят в заблуждение и будут вызывать ошибки кода в будущее, когда необходимо внести изменения. Отступы должны всегда отражать структуру кода, чтобы люди и компилятор Java видели одно и то же. – Andreas

ответ

1

Там нет процентов оператора, % в Java. Java рассматривает % как оператор остатка (несколько как модуль), и он не работает так, как вы думаете.

Так что 0.15 или 15.0/100, или что-то подобное вместо 15%

например, это:

totalTax1 = 15% * (adjustedIncome >= 32000 ? (22000) : (adjustedIncome - 10000)); 

становится

totalTax1 = 0.15 * (adjustedIncome >= 32000 ? (22000) : (adjustedIncome - 10000)); 
+0

Это было спасибо! – presence

+0

@SteeleDesmond: добро пожаловать и приглашаем вас в StackOverflow. –

-1

Это была простая ошибка. Я использовал оператор модуля в качестве знака процента.

+1

Пожалуйста, удалите это, так как на ваш вопрос уже есть правильный ответ. Пожалуйста, посмотрите раздел [help], чтобы узнать, как работает этот сайт. –