Java незаконное начало выражения - PullRequest
3 голосов
/ 27 января 2012

Я сделал Google, но не могу понять, что не так с моим кодом здесь.

Я получаю Недопустимое начало выражения Ошибка в операторе if в первом 'Else if'

Я довольно новичок в Java, но пытаюсь быстро освоить, поскольку это требование моего компьютерного курса, который я надеюсь сделать.

Любая помощь с благодарностью.

import java.util.Scanner;

public class net_salary{

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

    int income;
    int incometax;
    int afterincometax;
    int nationalinsurance;
    int afterni;
    int pension;

    income = in.nextInt();       

    if(income = 0) {
        incometax = 0;
    } else if (income >=9000 & <=21000) {
        incometax = income * 0.15;
    } else if (income >=21000 & <=31000) {
        incometax = income * 0.2;       
    } else if (income >=31000 & <=50000) {
        incometax = income * 0.225                

Ответы [ 5 ]

6 голосов
/ 27 января 2012

Вам нужно else if (income >=9000 && income <=21000) вместо else if (income >=9000 & <=21000).

Аналогично для других else if выражений.

Вы должны сделать два отдельных сравнения с доходом. Вы не можете сказать, «если доход больше или равен 9000 или меньше или равен 21000». Вы должны сказать «если доход больше 9000 или доход меньше или равен 21000».

& является побитовым И. && является логическим И.

Как заявили другие, income = 0 следует читать income == 0.

3 голосов
/ 27 января 2012

Вам нужно && не &, и повторите переменную 'доход':

else if (income >=9000 && income <=21000)

Вы также используете =, где вы, вероятно, имеете в виду ==

if(income == 0)

= присваивает значение, == проверяет, равны ли два значения.

1 голос
/ 27 января 2012

Проверьте использование операторов "=", "==", "&", "&&" в Java.

public class net_salary{
  public static void main(String[]args){
    int income, ncometax, afterincometax, nationalinsurance, afterni, pension; 
    Scanner in = new Scanner(System.in);   
    income = in.nextInt();

    if(income == 0) {
       incometax = 0;
    } else if (income >= 9000 && income <= 21000) {
       incometax = income * 0.15;
    } else if (income >=21000 && income <= 31000) {
       incometax = income * 0.2;
    } else if (income >=31000 && income <= 50000) {
    }
  }
}
1 голос
/ 27 января 2012

if(income = 0)

должно быть

if(income == 0)

и

else if (income >=9000 & <=21000)

(и его последователей)должно быть

else if (income >=9000 && income <=21000)

и похоже, что вам нужно сделать некоторые из ваших переменных двойными вместо int.

1 голос
/ 27 января 2012

Ваше выражение if / else if всегда должно иметь логическое значение (true / false). В Java && представляет собой AND, & является побитовым оператором, который управляет битами.

if(income == 0)
    {
        incometax = 0;

    }
**else if (income >=9000 && income <=21000)**
    {
        incometax = income * 0.15;
    }

else if (income >=21000 && income <=31000)
    {
        incometax = income * 0.2;

    }

else if (income >=31000 && income <=50000)
    {
        incometax = income * 0.225
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...