人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

Javaの条件分岐がうまくいかないです。

Javaを勉強中の者です。得点によってメッセージの内容を変える方法 https://joyplot.com/documents/2017/03/18/java-if-condition/ を自分でも試したいと思い、以下のコードをEclipseで入れました。

------------------------------
package package testprogramm;
public class Sample {
public static void main(String args[]) {

System.out.print("得点を入力してください: ");

Scanner scan = new testprogramme(System.in);

// キーボードから整数の入力を受け取る
int score = scan.nextInt();

// キーボードからの入力を終了する
scan.close();

// 60点未満と60点以上で処理を分ける
if (score >= 60) {
System.out.println("おめでとう! 合格です");
} else {
System.out.println("残念。不合格です");
}
}
}
------------------------------
すると「 Scanner scan = new testprogramme(System.in);」のところでエラーが出まして。

●質問者: moon-fondu
●カテゴリ:コンピュータ 学習・教育
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

質問者から

それでも実行しますと、

------------------
Exception in thread "main" java.lang.Error: Unresolved compilation problems:
Scanner を型に解決できません
コンストラクター testprogramme(InputStream) は未定義です

at testprogramm.Sample.main(Sample.java:7)
------------------

というエラー文が出てきてしまいました。

このエラーが出てしまう原因と、どこをどう修正すると正しくプログラムが動くか、お教えいただけないでしょうか。
よろしくお願い致します。


1 ● a-kuma3
●400ポイント ベストアンサー
Scanner scan = new testprogramme(System.in);

↑は、こうです。

Scanner scan = new Scanner(System.in);

もし、質問にあるコードが全てのコードだとしたら、以下も必要です。

import java.util.Scanner;

moon-fonduさんのコメント
ありがとうございます、うまくいきました! もし可能でしたらお教えいただきたいのですが。 for文やwhile文でループさせることはできないでしょうか? Enterキーを押すと、何回でも"得点を入力してください: "が出てきて、入力できるような感じです。 また、101点以上を入れると"点数が範囲外です。得点を再度入力してください: "と、再入力を促したり。 またescキーを押すとプログラム終了?breakとか使いますでしょうか? 終了させることはできないでしょうか?度々のお願いで恐縮ですm(_ _)m

a-kuma3さんのコメント
こんな感じでどうでしょう。 >|java| package package testprogramm; import java.util.Scanner; public class Sample { public static void main(String args[]) { Scanner scan = new Scanner(System.in); while (true) { System.out.print("得点を入力してください: "); // キーボードから整数の入力を受け取る int score = scan.nextInt(); if (score > 100) { System.out.println("点数が範囲外です。得点を再度入力してください"); } else if (score >= 60) { System.out.println("おめでとう! 合格です"); } else if (score < 0) { break; } else { System.out.println("残念。不合格です"); } } // キーボードからの入力を終了する scan.close(); } } ||< Scanner では、ESCキーを取れないので、負の値を入れたら while を脱出するように書いてます。

moon-fonduさんのコメント
ありがとうございます!うまくいきました♪

2 ● kaoato
●200ポイント

Scanner scan = new testprogramme(System.in);

は、

Scanner scan = new Scanner(System.in);

の間違いでは?

あと、コメントにあるように
一番上の
import java.util.Scanner;

を付けたほうが良いのでは?



Scanner (Java Platform SE 8 )
https://docs.oracle.com/javase/jp/8/docs/api/java/util/Scanner.html

System (Java Platform SE 8 )
https://docs.oracle.com/javase/jp/8/docs/api/java/lang/System.html


moon-fonduさんのコメント
ありがとうございます、リンク先も確認して勉強します!
関連質問

●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ