2011-10-22 19 views
3

私はこのコードをコンパイルしようとしていますが、私のコンパイラ(BlueJ)は私に、||演算子||または|使用できません

import java.io.*; 
import javax.swing.JOptionPane; 

class Hi { 
public static void main (String [] args){ 

String Answer; 
Answer = JOptionPane.showInputDialog("Who is a troll?"); 
if (Answer.equals ("null")) 
{ 
JOptionPane.showMessageDialog(null, "You forgot to enter an answer before pressing 'ok'."); 
} 
else if (Answer.equals("Bob" || "Bob" || "Charlie Sheen")) 
{ 
JOptionPane.showMessageDialog(null, "Your answer is incorrect."); 
} 
else 
JOptionPane.showMessageDialog(null, "Yes, " + Answer + ", is definitely a douchebag."); 

System.exit(0); // not needed to run 

} 
} 

をjava.lang.string.java.lang.stringに適用することはできませんヘルプ

+1

「Bob」とは何を期待しますか? "Bob" || "チャーリーシーン"と評価する? –

+1

ここで与えられた答えはすべて有効ですが、Mot39が提案した方法で文字列をコンパイルできるのはかなり面白いと思いませんか?(Answer "(" Bob "|" Bob "|| "チャーリー・シーン"))")? –

+0

@WojtekO .: Iconの言語が必要な場合は、[はじめに]で紹介した最初のコンセプトです(http://www.cs.arizona.edu/icon/intro.htm)。 – millimoose

答えて

5

ためすっごくありがとうございましたBozhoが指摘するように、固執してください

if (Answer.equals("Bob") || Answer.equals("Charle") {}

をお試しくださいJavaコーディング規約のNaming Conventionsのセクションに記載されているようなJavaコーディング標準に変換することができます。

8

そんなことはできません。 ||演算子は2つのブール型オペランドを必要とし、あなたは文字列です。あなたは個別平等をチェックする必要があります。

if (answer.equals("Bob") || answer.equals("Charlie Sheen")) { 
} 

数sidenotes:

  • 変数名は(慣例により)小文字でなければなりませんが。
  • 同じ文字列(「Bob」)を2回入力しないでください。
  • nullは、"null"と同じではありません。 answer == nullを比較する必要があります。あなたはnullオブジェクトに.equals(..)を呼び出すしようとした場合、あなたは文字列オペランドに論理OR演算子を適用することはできません例外
+0

本当にありがとう、私は頭の中で意味を作ったが、実際はそうではないと思う。 – Mot39

+1

@Mot yup。あなたは答えを選んで受け入れられたとマークします(それが助けになった場合) – Bozho

3

を取得します。

試してみてください。

if (Answer.equals("Bob") || Answer.equals("Charlie Shee")) 
1

前の答えは動作します。

if (Answer.equals("Bob") || Answer.equals("Charlie Shee")) 

しかし、それは優れているが、このように足すの良い習慣を取る:回答がnullになった場合

if ("Bob".equals(Answer) || "Charlie Shee".equals(Answer)) 

は、最終的なクラッシュを避けるために。

1

他にも示されているとおり、これはequalsの有効な構文ではないため動作しません。それほど冗長な解決策はありません:

if (Arrays.asList("Bob", "Bob", "Charlie Sheen").contains(Answer)) 
関連する問題