2017-07-18 7 views
-4

こんにちは、この大胆な質問は申し訳ありませんが、コードの24行目と30行目のニーズを解決する方法がわかりません。また、33行目と22行目にエラーメッセージが表示されるので、それらを解決できればすばらしいでしょう。ifステートメントで文字列を使用できません

import java.util.Scanner; 

public class CheckOrder { 


    public static Scanner userInput = new Scanner(System.in); 
    public static Scanner userInputStarters = new Scanner(System.in); 

    public static String menu; 
    public static String check; 
    public static String TheRestroom = "The Restroom"; 
    public static String Restroom = "Restroom"; 
    public static String Eat = "Eat"; 
    public static String ToEat = "To Eat"; 
    public static String restOrEat; 


    public static void main(String[] args) { 

     System.out.print("Hello and Welcome to the SOMETHING restaurant. Would you like to eat or use the restroom?"); 
     public static restOrEat = userInput.NextInt(); 

     if (restOrEat.equalsIgnoreCase(TheRestroom || Restroom)) { 

      System.out.println("Please go ahead to the restroom, it's over there."); 
      System.exit(1); 
     } 

     if (restOrEat.equalsIgnoreCase(Eat || ToEat)) { 

      System.out.print("What would you like to eat for starters? Press 1 for Cheese & Bacon, 2 for Sald (With options) and 3 for noodles"); 
      public static String starter = userInputStarters; 

     } 


    } 

} 
+1

MCCVEを投稿してください([MCVE]のようですが、コンパイル可能)。いくつかの読書:https://docs.oracle.com/javase/8/docs/api/java/lang/String.html#equalsIgnoreCase-java.lang.String- –

+0

あなたは 'sys.out'を入れてみましたか? 。また、ユーザの入力には 'trim'が必要かもしれません。 – Mritunjay

+0

あなたは 'equalsIgnoreCase'を1回だけチェックするべきではありません。 – soorapadman

答えて

0

まず第1に、メインメソッドではpublic staticを使用できません。またrestOrEatのような音は、yesまたはnoの文字列であると考えられているので、nextInt()と言うことはできません。 1行の場合はnext()、1行分の場合はnextLine()のいずれかを使用してください。そして、ifステートメントでは、コールの中で||演算子を使用することはできませんが、2つを作成して||を中央に置く必要があります。

必要に応じてお試しください。

import java.util.Scanner; 

public class CheckOrder { 

    public static Scanner userInput = new Scanner(System.in); 
    public static Scanner userInputStarters = new Scanner(System.in); 

    public static String menu; 
    public static String check; 
    public static String TheRestroom = "The Restroom"; 
    public static String Restroom = "Restroom"; 
    public static String Eat = "Eat"; 
    public static String ToEat = "To Eat"; 
    public static String restOrEat; 


    public static void main(String[] args) { 

     System.out.print("Hello and Welcome to the SOMETHING restaurant. Would you like to eat or use the restroom?"); 
     restOrEat = userInput.next(); 

     if (restOrEat.equalsIgnoreCase(TheRestroom) || restOrEat.equalsIgnoreCase(Restroom)) { 

      System.out.println("Please go ahead to the restroom, it's over there."); 
      System.exit(1); 
     } 

     if (restOrEat.equalsIgnoreCase(Eat) || restOrEat.equalsIgnoreCase(ToEat)) { 

      System.out.print("What would you like to eat for starters? Press 1 for Cheese & Bacon, 2 for Sald (With options) and 3 for noodles"); 
      int starter = userInputStarters.nextInt(); 

     } 


    } 

} 
+0

あなたはそれが何であるか説明する気になりますか? – Mritunjay

+0

まだ問題の原因を説明していませんでしたか? – soorapadman

1

||演算子をjava.util.Stringに適用することはできません。

restOrEat.equalsIgnoreCase(Eat || ToEat); 

両変数EatToEatはクラスjava.util.Stringからのオブジェクトです。このため、||演算子は動作しません。

に変更し、それを:

restOrEat.equalsIgnoreCase(Eat) || restOrEat.equalsIgnoreCase(ToEat); 

これは動作します。

0

mainメソッドの中に書いているように 'public static'を書くことはできません。

if (restOrEat.equalsIgnoreCase(TheRestroom) || restOrEat.equalsIgnoreCase(Restroom)) { 

の文が正しくない場合は、すべて、彼らは第二に、このif (restOrEat.equalsIgnoreCase(TheRestroom) || restOrEat.equalsIgnoreCase(Restroom)) {

のようなことになっているの

0

まず上記参照して、あなたのラインの両方を交換して、あなたは、公共を持つことができないとメソッド内の変数のinfrontの静的キーワード。

だから変更public static restOrEatnextInt()また

Java Naming Conventionsこれをチェックアウトすることになっているint restOrEat(一見すでにクラスの文字列として定義される)とNextIntに(あなたはまた、オブジェクト定義が欠落しています)

0

あなたは、いくつかの問題を抱えて:

  • OR条件(||が)チェックの間でなければなりません

    if (restOrEat.equalsIgnoreCase(TheRestroom) || restOrEat.equalsIgnoreCase(Restroom)) { } 
    
  • あなたはクラス変数としてrestOrEatを定義したが、main

    public static restOrEat = userInput.NextInt(); 
    
  • public staticに(一種の)それを再定義、メソッド、変数(いなくても別途)のための有効な構文ではありません、あなたはしないでくださいタイプがある。

  • userInput.NextInt();intが返されますが、restOrEatStringです。代わりにuserInput.next()を使用してください。ここで

0
import java.util.Scanner; 
class CheckOrder { 


public static Scanner userInput = new Scanner(System.in); 
public static Scanner userInputStarters = new Scanner(System.in); 

public static String menu; 
public static String check; 
public static String TheRestroom = "The Restroom"; 
public static String Restroom = "Restroom"; 
public static String Eat = "Eat"; 
public static String ToEat = "To Eat"; 
public static String restOrEat; 


public static void main(String[] args) { 

    System.out.print("Hello and Welcome to the SOMETHING restaurant. Would you like to eat or use the restroom?"); 
    restOrEat = userInput.next(); 

    if (restOrEat.equalsIgnoreCase(TheRestroom)||restOrEat.equalsIgnoreCase(Restroom)) { 

     System.out.println("Please go ahead to the restroom, it's over there."); 
     System.exit(1); 
    } 

    if (restOrEat.equalsIgnoreCase(Eat)||restOrEat.equalsIgnoreCase(ToEat)) { 

     System.out.print("What would you like to eat for starters? Press 1 for Cheese & Bacon, 2 for Sald (With options) and 3 for noodles"); 
     int starter = userInputStarters.nextInt(); 

    } 
} 
} 

あなたの問題の解決策です。

関連する問題