-1

私はJavaが初めてで、現在、ifステートメントでスキャナー入力を別の数値と比較し、ifに応じて応答を出力する方法をテストするためだけに、非常に単純なコードを作成しようとしています。これは私が持っているもので、if行でエラーが発生し、このエラーが発生しています:

The operator > is undefined for the argument type(s) String, int.

これを理解したら、それを使って他のことをしようとするので、どんな助けも素晴らしいでしょう。ありがとう!

import java.util.Scanner;
class damagecalc {
public static void main(String args[]){
    Scanner input = new Scanner(System.in);

    System.out.println("How much damage did you do?");
    String damage = input.nextLine();

    if(damage > 50){
        System.out.println("You have died!");
    }else{
        System.out.println("Your damage amount is:" + input);
        }
    }
}
4

4 に答える 4

2

あなたが持っている

String damage = input.nextLine();

あなたがしたい

int damage = input.nextInt();

この

System.out.println("Your damage amount is:" + input);

する必要があります

System.out.println("Your damage amount is:" + damage);
于 2013-10-28T15:12:16.187 に答える
1

より堅牢なソリューションを探している場合は、次のようなものを試すことができます。

public static int readInt(final String prompt){
    final Scanner reader = new Scanner(System.in);
    while(true){
        System.out.println(prompt);
        try{
            return Integer.parseInt(reader.nextLine());
        }catch(Exception ex){
            System.err.println("Enter a valid integer: " + ex);
        }
    }
}

Scanner複数のユーザー入力を読み取る予定がある場合は、静的クラス フィールドとして宣言することをお勧めします(おそらくそうします)。次のように呼び出すことができます。

final int damage = readInt("How much damage did you do?");
System.out.println(damage > 50 ? "You have died!" : ("Your damage amount is: " + damage));
于 2013-10-28T15:22:46.777 に答える
1

文字列を整数と比較することはできません。解析するだけです。

  try {
        if (Integer.parseInt(damage) > 50) {i
             System.out.println("You have died!");
        } else {
             System.out.println("Your damage amount is:" + input);
        }
    } catch (NumberFormatException e) {
        e.printStackTrace();
                    System.out.println("You have entered a non integer number!");
    }   
于 2013-10-28T15:12:26.203 に答える
1

演算子Stringを使用して s を比較することはできません。>Java では、独自のオペレーターの振る舞いを定義することはできません。

それ以外の

String damage = input.nextLine();

使用する

Integer damage = input.nextInt();
于 2013-10-28T15:12:51.863 に答える