2016-10-25 11 views
0

Я пытаюсь сделать оператор else if внутри коммутатора, но я продолжаю получать «незаконный запуск ошибки выражения». Ошибка обычно появляется в < = внутри случая 1. Я попытался добавить круглые скобки и скобки, чтобы убедиться, что это проблема, но это не так.Ошибка «Незаконный старт выражения» с else if

import java.util.Scanner; 

    public class InvoiceApp 
    { 
     public static void main(String[] args) 
     { 
      //Declare variables and Scanner object 
      float subtotal; 
      int customerType; 
      double discountAmount; 
      double discountPercent; 
      double total; 

      Scanner keyboard = new Scanner(System.in); 

      //Prompt user for subtotal 
      System.out.println("Please enter the subtotal: "); 

      //Read subtotal 
      subtotal = keyboard.nextFloat(); 

      //Calculate Discount Rate 
      switch(customerType) { 
       case 1: if (subtotal >= 500) discountPercent = 20; 

         else if (subtotal < 500 && <= 250) 
          discountPercent = 15; 

         else if (subtotal < 250 && <= 100) 
          discountPercent = 10; 

         else if (subtotal < 100) 
          discountPercent = 0; 



      }    
+0

'субтотальная <500 && <= 250' синтаксическая ошибка: это не ясно, что это означало иметь в виду: что значит быть меньше или равно 250? – tfb

ответ

-1
subtotal < 500 && subtotal<= 250 
+2

Ваш ответ на самом деле не является правильным утверждением о значении промежуточного итога, но если я предполагаю, что вы хотели написать что-то вроде «Изменить' subtotal <500 && <= 250' на 'subtotal <500 && subtotal <= 250'" то: это будет учитывать синтаксическую ошибку, но будет ясной логической ошибкой. – ruakh

+0

@ruakh Возможно, он имел в виду (промежуточный итог <500 && subtotal> = 250). –

+0

Это не дает ответа на вопрос. Когда у вас будет достаточно [репутации] (http://stackoverflow.com/help/whats-reputation), вы сможете [прокомментировать любое сообщение] (http://stackoverflow.com/help/privileges/comment); вместо этого [предоставить ответы, которые не требуют разъяснений у аськи) (http://meta.stackexchange.com/questions/214173/why-do-need-50-reputation-to-comment-what-can- я-делать-вместо этого). - [Из обзора] (/ review/low-quality-posts/14096286) – DimaSan

1
if (subtotal < 100) 
    discountPercent = 0; 
else if (subtotal < 250) 
    discountPercent = 10; 
else if (subtotal < 500) 
    discountPercent = 15; 
else 
    discountPercent = 20; 
+1

Почему вы отступаете от кода так непоследовательно? –

+0

@RolandIllig, что вы имеете в виду? – Vyacheslav

+0

Каждое из 'else' должно иметь такое же расстояние от левого поля, а задания должны быть вправо. –

Смежные вопросы