1. ホーム
  2. java

[解決済み】非互換な型:voidはintに変換できない【重複あり

2022-02-22 18:38:52

質問

私は、Javaやプログラミング全般に関して、非常に初心者です。私は、あなたが私の年齢を推測し、あなたが正しい場合は、それは"正しい"と言うでしょうし、あなたが間違っている場合は、"間違った"と言うでしょう、簡単なプログラムを作成しようとしています。

これが私のコードです。

import java.util.InputMismatchException;
import java.util.Scanner; // This will import just the Scanner class.

public class GuessAge {
    public static int main(int[] args) {
       System.out.println("\nWhat is David's Age?");
       Scanner userInputScanner = new Scanner(System.in);
       int age = userInputScanner.nextLine();



        int validInput = 20;
        if (validInput == 20) {
            return System.out.println("Correct!!");
        }
        else {
            return System.out.println("Wrong....");
        }
    }
}

エラー "互換性のない型: void cannot be converted to int" が出ますが、コードにvoidクラスはないのでしょうか?私のコードはおそらくひどいものだと思いますが、もし皆さんが正しい方向を指し示してくれたら、それは素晴らしいことです。ありがとうございます。

解決方法は?

を返す必要はありません。 intpublic static int main . 代わりに、次のようにすることができます。 void (何も返さないという意味)。単純にステートメントを表示するだけでよくて、その際に return を使用します。また int[]String[]Scanner をチェックする必要があります。 nextInt() コメントでご指摘の通りです

import java.util.InputMismatchException;
import java.util.Scanner; // This will import just the Scanner class.

public class GuessAge {
public static void main(String[] args) {
   System.out.println("\nWhat is David's Age?");
   Scanner userInputScanner = new Scanner(System.in);
   int age = userInputScanner.nextInt();



    int validInput = 20;

    // typo in your code - compare to age
    if (validInput == age) {
        System.out.println("Correct!!");
    }
    else {
        System.out.println("Wrong....");
    }
}

}