• ベストアンサー

コマンドプロンプトでキーを押して入力した数値を代入させたいんですが

自分で勉強中の(かなりてこずってる)範囲の課題を出されてしまい困っています。 C言語のscanfのように実行してから数値を代入させてその判別を制御文で行うプログラムを作りたいのですが制御までは授業でやって理解していますが代入させる部分がよくわからないんで教えてください。 ヒントが出されたんですが BufferdReader br = new BufferdReader(new InputStreamReader(System.in)); String in = br.read.Line(); でできるということでした。 そこで自分なりに考えてみたのが判別するために (int) in; とか int x = (int)in; とかやってみてinを数値として扱おうとしたのですがエラーが出てしまいました。どこがおかしいのかよくわからなくて調べてみましたが別のファイルからの入力についての解説ページしか見つからなかったのでこちらで分かる方どうか教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

class Q4061261A{ public static void main(String[] args){ java.io.BufferedReader br = new java.io.BufferedReader(new java.io.InputStreamReader(System.in)); //スペルミスあり。 String in = null; int num = 0; try{ in = br.readLine(); //read.LineじゃなくreadLine }catch(java.io.IOException e){ System.out.println(e.toString()); System.exit(0); }finally{ } try{ num = Integer.parseInt(in); }catch(NumberFormatException e){ System.out.println(e.toString()); System.exit(0); }finally{ } if (num == 5){ System.out.println("5です。"); }else{ System.out.println("5ではありません"); } } }

gokigenn
質問者

お礼

できました。ありがとうございます。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (1)

  • OKapple
  • ベストアンサー率56% (17/30)
回答No.2

データの型を変換することを「キャスト」と呼びます。 (int)のような文法でキャストできるのは、javaの基本型同士の場合または継承関係にあるオブジェクトの場合だけです。 ※基本形同士でキャストする場合は、データの精度に注意する必要もあります。 実際のソースの例は、No.1の方のものを参照してください。 キャスト自体は > num = Integer.parseInt(in); の1行ですが、parseIntは例外をthrowすることがあるので、例外処理も必要になります。 余談ですが。 このようなキャスト処理は、javaの習熟の上で避けて通れない知識のひとつです。 オブジェクト・クラスと継承の考え方、データ型についてなど、どうぞ頑張って勉強してください。

gokigenn
質問者

お礼

専門家の方ですか。私もSEやプログラマを目指しているものです。 とてもありがたいお言葉ありがとうございます。解説も参考にさせていただき理解できました。ありがとうございます。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • doubleで入力するには?

    はじめまして。 Javaの勉強をはじめたばかりです。 質問のしかたが正しいのかもちょっと自信がないのですが、 BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String str = br.readLine(); int num = Integer.parseInt(str); っていうのがありますよね? これの『int』のところを『double』で入力できるように するにはどうすればいいのでしょうか? すごい初心者な質問で申し訳ないですが、よろしくお願いします。

    • ベストアンサー
    • Java
  • コマンドプロンプトでひらがなの入力が出来ません。

    普段グーグル日本語入力を使っています。 OS XPsp2 import java.io.*; class Mojiretuate { public static void main(String[] args) throws IOException { String str = "こんにちは"; String str2; BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); System.out.println("文字列当てゲームです。"); System.out.println("答えは何かのあいさつです。"); for(;;){ System.out.println("\n入力"); str2 = br.readLine(); System.out.println("入力文字列の長さ:" + str2.length()); if(str.equals(str2)){ System.out.println("正解です"); break; } else if(str2.length() > str.length()){ System.out.println("長すぎます。"); } else if(str2.length() == str.length()){ System.out.println("長さはあっています。"); } else{ System.out.println("短すぎます。"); } } System.out.println("終了"); } }

    • ベストアンサー
    • Java
  • 多次元配列への数値の代入。

    こんにちは。 今、多次元配列への数値の代入の仕方で、悩んでいます。 A[][] = new int[n][n]; B[][] = new int[n][n]; 上記のようなn行n列の配列を宣言し、nを入力します。 例えば、n=100と入力すると、100行100列の配列を定義したことになり、Aの配列には1~10000、Bの配列には10001~20000の数値を代入、200×200であれば1~40000、40001~80000…という感じにしたいのですが、いいアイディアが浮かびません。 また、1~nの間でランダムに数値を選び、その数値を代入というのも考えましたが、Javaで乱数を代入できるのかな?という疑問が出来てしまい、わからなくなってしまいました。 何かいい考えがありましたら、ぜひ教えてください。 よろしくお願いします。

    • ベストアンサー
    • Java
  • クラスのフィールドの値を配列に代入する方法

    フィールドの値を代入したいのですが、 java.lang.ArrayIndexOutOfBoundsException というエラーが出てしまい、どうすればいいのかわかりません。 どのように対処すればいいのでしょうか? class Car { String carname; int height; int width; int length; } class public static void main(String[] args) throw IOException { Car car[]; car = new Car[5]; System.out.println("車の情報を入力してください。"); BufferedReader br1 = new BufferedReader(new InputStreamReader(System.in); for(int i=0; i<5; i++){ car[i] = new Car(); System.out.println(i+1 + "台目の車の名前を入力してください。"); String str1 = br1.readLine(); System.out.println("車の高さを入力してください。"); String str2 = br1.readLine(); System.out.println("車の幅を入力してください。"); String str3 = br1.readLine(); System.out.println("車の長さを入力してください。"); String str4 = br1.readLine(); int h1 = Integer.parseInt(str2); int w1 = Integer.parseInt(str3); int l1 = Integer.parseInt(str4); car[i].carname = str1; car[i].height = h1; car[i].weith =w1; car[i].length =l1; } for(int i=0; i<5; i++){ int c_h[] = new int[5]; c_h[i] = car[i].height; } } よろしくお願いします。

    • ベストアンサー
    • Java
  • if文で

    String[]s = new String[1]; s[1] = "1";の1と BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String a = br.readLine();で入力した1は比較できますか?

    • ベストアンサー
    • Java
  • Java int sum = 0は必要ですか?

    やさしいJavaという本を買ったのですが、良くわからない箇所がありました。 --------------省略----------------- class Sample6 { public static void main(String[] args) throws IOException { System.out.println("整数を3つ入力してください。") ; BufferedReader br = new BufferedReader(new InputStreamReader(System.in)) ; String str1 = br.readLine() ; String str2 = br.readLine() ; String str3 = br.readLine() ; int sum = 0 ; sum += Integer.parseInt(str1) ; -------------------略----------------- int sum = 0 ; とありますが、0と設定しておく必要はありますか? 無いとまずいですか? いきなりこのコードが出てきたと思うのですが どこかに書いてましたっけ?

    • ベストアンサー
    • Java
  • 2進数変換について教えてくださ。

    public class Class1 { public static void main (String[] args) throws Exception { System.out.println("任意の数値を入力してください:"); BufferedReader reader = new BufferedReader(new InputStreamReader(System.in),1); try{ String line=reader.readLine(); int n = Integer.parseInt(line); for (int m=n ; m>0; m/=2) { int r =m % 2; System.out.print(r); } System.out.println("\n逆から見ると"+n+"の2進数になっています。"); System.in.read(); } catch (IOException e) { System.err.println("Error Message:"+e); System.in.read(); } catch (NumberFormatException e){ System.out.println("数字ではありません"); System.in.read(); } } } 上のプログラムを実行して例えば8という数字を入力するとすると、 任意の数値を入力してください。 8 0001 逆から見ると8の2進数になってます。 というような感じになるのですが、逆から見ないでも2進数になるように (0001)を(1000)のような感じで数値を逆に表示させるにはどのようにすればいいのでしょうか? よろしくお願いします。

    • ベストアンサー
    • Java
  • 文字型配列に数値を文字として代入したいです

    掲題の通りですが、listという配列に数値や文字を入れたいです。 数値は必ず整数1桁、文字はAかBの1文字です。 配列は char list[] = new char[8]; として定義しています。 numにAかBを入れると、代入も表示もうまくいきます。 しかし、数値を入れると以下のような動作となります。 list[i] = num とすると 「不適合な型: 精度が失われる可能性があるintからcharへの変換」 というエラーが表示されます。 list[i] = (char)num; に変更するとエラーは出ませんが、表示がうまくされません。 list[i] = String.valueOf(num); に変更すると 「エラー: 不適合な型: Stringをcharに変換できません:   list[i] = String.valueOf(num);」 というエラーが表示されます。 何か良い方法はないでしょうか。

  • 画面出力の際の繰り返しと入力文字チェック

    いつもお世話になっております。 System.out.println("数字を入力してください"); InputStreamReader reader = new InputStreamReader(System.in); BufferedReader br = new BufferedReader(reader); String str = br.readLine(); int res = Integer.parseInt(str); と記述して画面に出力させた場合、数字以外を入力するとエラーになりますが、入力文字のチェックが可能な方法をご存知の方お願いします。 もうひとつ、作業が終わった後も"数字を入力してください"と繰り返すプログラムについてもご教授ください。 いつも簡単な質問で申し訳ありません・・。一応逆引き辞典で調べてはいるのですが。。

    • ベストアンサー
    • Java
  • javaについて質問させてください

    入力していった数を足していく式を作りたいんですが、どのような式にしたらいいのでしょうか? ググってみたのですが、どうも難しく、説明の理解もできませんでした。。 import java.io.*;public class Input6{ public static void main(String args[]) throws IOException{ int i; String s1,s2; BufferedReader br=new BufferedReader(new InputStreamReader(System.in)); while( ↑ここまではできたのですが、ここから先が全くできません><(合ってるかどうかもわかりません><) 実行結果として >java ry 合計 100 現在の合計100 900 現在の合計1000 みたいな感じのを作りたのですが、どなたか式を教えてもらえませんか>< ヒントでもいいのでよろしくお願いします><

VegasPro12レンダリングボタン表示
このQ&Aのポイント
  • VegasPro12のレンダリングボタンが表示されない問題について
  • 使用中のVegasPro12でループリージョンを指定してレンダリングボタンが表示されない問題が発生しました。設定方法について教えてください。
  • MovieStudio12ではレンダリングできるが、VegasPro12ではレンダリングボタンがマークされない問題が発生しています。解決策をお知らせ願います。
回答を見る