2011-06-21 14 views
0
public String sizeOfSupermarket() { 
    String size; 
    switch (this.numberOfProducts) { 
     case (this.numberOfProducts > 5000): 
      size = "Large"; 
      break; 
     case (this.numberOfProducts > 2000 && this.numberOfProducts < 5000): 
      size = "Medium"; 
      break; 
     case (this.numberOfProducts < 2000): 
      size = "Small"; 
      break; 
    } 
    return size; 
} 

上記は間違っていますが、case文の比較文を書く方法は?java switch case question

+3

私は宿題をかぎます。 – f1sh

+2

'if'文が必要です。スイッチなし –

+1

'size'が5000または2000の場合、あなたは何を返すでしょうか? –

答えて

1

は数千人の数を見てください。

public String sizeOfSupermarket() { 
    switch (this.numberOfProducts/1000) { 
     case 0: case 1: return "Small"; 
     case 2: case 3: case 4: return "Medium"; 
     default: return "Large"; 
    } 
} 

注:numberOfProductsが正確に2000または5000の場合、それは(それがコンパイルされたと仮定した場合)はnullを返しますよう、あなたのコードのバグを持って

0

スイッチを使用してブール式をテストすることはできません。 ifを使う必要があります。あなたは変数が1つの特定の値を持っているかどうかを確認したい場合 あなたは、すなわちをスイッチを使用することができます。:

public String sizeOfSupermarket() { 
String size; 
switch (this.numberOfProducts) { 
    case 5000: 
     size = "Large"; 
     break; 
    case 2000: 
     size = "Medium"; 
     break; 
    case 100): 
     size = "Small"; 
     break; 
    } 
    return size; 
} 
1

あなたはcase文で表現を使用することはできません。条件はswitchステートメントで評価され、caseステートメントは結果が一致するかどうかを確認します。

何をしようとするためには、あなたがifelse if一連のステートメントを使用する必要があります:

if(this.numberOfProducts > 5000) { 
    size = "Large"; 
} 
else if(this.numberOfProducts > 2000 && this.numberOfProducts < 5000) { 
    size = "Medium"; 
} 
else { 
    size = "Small"; 
} 
+0

私はスイッチケースを使用する必要がありますか?私はできますか? – hkvega

+0

各ケースに式を使用する必要はありません。あなたがすでに持っている8つの答えで述べられているように、if/else文だけが使えます。 'switch 'の全体点は、' switch'で条件が評価され、 'case'が一致するかどうかがテストされることです。 –

+0

'numberOfProducts == 5000 'という@Gabrielの答えを参照してください。余分なチェックは必要ありません。 –

0

のJava 1.6は条件switch文をサポートしていない、あなたの最善の策を使用することですif then elseの制御構造

0

途中です。定義では、スイッチ/ケースは、私が知っているすべてのC言語の列挙型(int、boolean、long、enum)のみに基づいています。

ここに/他の構造のであれば、あなたが使用する必要があります:あなたはこのような場合には、得られた値を使用することができます

public String sizeOfSupermarket() { 
    String size; 
     if (this.numberOfProducts > 5000) { 
      size = "Large"; 
     } else if (this.numberOfProducts > 2000 && this.numberOfProducts < 5000) { 
      size = "Medium"; 
     } else (this.numberOfProducts < 2000) { 
      size = "Small"; 
     } 
    return size; 
} 
1
if (numberOfProducts >= 5000) 
    size = "Large"; 
else if (numberOfProducts >= 2000) 
    size = "Medium"; 
else 
    size = "Small"; 
関連する問題