2016-10-25 10 views
0

スイッチ内でelse ifステートメントを実行しようとしていますが、 "不正な式エラーの開始"が続きます。エラーは通常、ケース1内の< =でポップアップします。問題があるかどうかを確認するためにかっこと角かっこを追加しようとしましたが、そうではありませんでした。"else of if expression"の不正な開始エラー

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

あなたの答えは実際に小計の価値についての正しいクレームではありませんが、 "小計<500 && <= 250"を小計<500 &&小計<= 250 "に"変更する " then:これは構文エラーに対処しますが、明確な論理エラーになります。 – ruakh

+0

@ruakhおそらく彼はそれを意味しました(小計<500 &&小計> = 250)。 –

+0

これは質問に対する答えを提供しません。十分な[評判](http://stackoverflow.com/help/whats-reputation)があれば、[任意の投稿にコメントする]ことができます(http://stackoverflow.com/help/privileges/comment)。代わりに、[質問者からの説明を必要としない回答を提供する](http://meta.stackexchange.com/questions/214173/why-do-i-need-50-reputation-to-comment-what-c​​an- i-do-代わりに)。 - [レビューの投稿](レビュー/低品質の投稿/ 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」のそれぞれは、左余白から同じ距離を持つ必要があり、割り当てはさらに右にあるべきです。 –