• 締切済み

ユーザー入力値を足し算する

import java.io.*; public class sampleD4L2 { public static void main(String[] args) { //入力データー読み込みようオブジェクトを作成 BufferedReader myReader = new BufferedReader( new InputStreamReader(System.in), 1); try{ //開始メッセージの表示 System.out.println("A+Bの足し算を行います"); //Aの値の入力を促す System.out.println("Aの値を入力してください"); //Stringクラス型の変数を宣言し読み込んだ入力データーを代入 String myString = myReader.readLine(); //String型に入力した値をint型の変数に代入 int intA = Integer.parseInt(myString); //Bの値の入力を促す System.out.println("Bの値を入力してください"); //Stringクラス型に読み込んだ入力データーの代入 int intB = Integer.parseInt(myString); //A+Bを計算し、intAnswerに代入 int intAnswer = intA + intB; //メッセージを合成して表示 System.out.println("A+Bを計算すると" + intAnswer + "になります"); //エラー処理ブロッグ }catch (IOException e) { System.out.println("エラーが発生しました"); } } } 上のソースは本通に写したんですが、Bの値が入力せずA+Aの計算になっています。どこがいけないのでしょうか?

  • Java
  • 回答数1
  • ありがとう数0

みんなの回答

  • aqua79
  • ベストアンサー率66% (2/3)
回答No.1

今のままではAの入力値しかとれていません。 //Bの値の入力を促す System.out.println("Bの値を入力してください"); の行の下に↓を追加すればよいと思います。 myString = myReader.readLine();

関連するQ&A

  • 本どおりに写しているはずなのに

    エラーの場所を見てもエラーが見つかりません。(初心者なのですいません) C:\java>javac sampleD2L5.java sampleD2L5.java:4: \12288 は不正な文字です。    int intA; ^ sampleD2L5.java:4: \12288 は不正な文字です。    int intA; ^ sampleD2L5.java:4: \12288 は不正な文字です。    int intA; ^ sampleD2L5.java:9: \12288 は不正な文字です。    intA = 10; ^ sampleD2L5.java:9: \12288 は不正な文字です。    intA = 10; ^ sampleD2L5.java:9: \12288 は不正な文字です。    intA = 10; ^ sampleD2L5.java:14: \12288 は不正な文字です    System.out.println( ^ sampleD2L5.java:14: \12288 は不正な文字です    System.out.println( ^ sampleD2L5.java:14: \12288 は不正な文字です    System.out.println( ^ エラー 9 個 が、エラーです。 public class sampleD2L5 { public static void main(String args []) { //変数の宣言    int intA; int intB; char chrA; //変数に値を代入    intA = 10; intB = 2; chrA = 'a'; //コンソール上にメッセージを表示    System.out.println( "intAには" + intA + "が入っています"); System.out.println( "intBには" + intB + "が入っています"); System.out.println( "charAには" + charA + "が入っています"); System.out.println( "intA + intB = " + (intA + intB)); System.out.println( "intA - intB = " + (intA - intB)); } } が、ソースです。

    • ベストアンサー
    • Java
  • Java言語 正答率、正答数の表示の仕方

    自動的に3桁までの足し算の問題を繰り返して10問生成・表示し、入力された答えが正解か不正解かを表示する。最後に正答数と正答率を表示する。 というプログラムをeclipseで作っています。 問題を自動生成、表示、正解、不正解の表示まではできたのですが、正答数と正答率の表示の仕方がわかりません。 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class Java05 { /** * @param args * @throws IOException */ public static void main(String[] args) throws IOException { // TODO 自動生成されたメソッド・スタブ System.out.println("コンピュータが足し算の問題を10問出します"); int intC = 0; for(intC = 0;intC<10;intC++) { double dblA=Math.random()*1000; double dblB=Math.random()*1000; int intA=(int)dblA; int intB=(int)dblB; int intAns; intAns=intA + intB; System.out.println(intA +"+"+ intB +"="); System.out.println("あなたの答え="); BufferedReader myReader=new BufferedReader(new InputStreamReader(System.in),1); try{ String myString=myReader.readLine(); int myAns=Integer.parseInt(myString); if(myAns==intAns){ System.out.println("正解です!"); }else{ System.out.println("残念でした!正しい答えは"+intAns+"です。"); } }catch(IOException ie){System.out.println("エラーが発生しました。");} catch(NumberFormatException ne){ System.out.println("入力された数値が正しくないようです。"); } } } } どのようにすればよいでしょうか。。。 教えてください!

  • 入出力について

    下記のソースコードで、2点不明な点がありますので ご教授お願い致します。 import java.io.BufferedReader; import java.io.InputStreamReader; import java.io.IOException; public class ab3{ public static void main(String args[]){ BufferedReader myReader = new BufferedReader( new InputStreamReader(System.in)); try{ System.out.println("名前を入力してください"); String myString = myReader.readLine(); System.out.println(myString + "さん、こんにちわ!"); }catch(IOException e) { } } } 1. BufferedReader myReader = new BufferedReader( new InputStreamReader(System.in)); ここのソースコードについてですが、 new BufferedReader(new InputStreamReader ^^^ ^^^ (System.in)); 「new」が二つもついていますが、何故二つも つける必要があるのでしょうか。 一つであっても問題はないと思われ、 2番目の「new」を取り除くと、エラーが表示されて しまいます。 また、上記ソースコードを BufferedReader myReader ; myReader = InputStreamReader(System.in)); と分割して書こうとしてもエラーが表示されてしまいます。 2. String myString = myReader.readLine(); ここの部分ですが、これはString型のインスタンス(コンストラクタ?)を 作っていると思われますが、この部分を String myString ; myString = myReader.readLine(); または、 String myString = new myReader.readLine(); としてたら、エラーが表示されてしまいます。 JAVAを初めて間もなく、質問の内容がわかりづらいと 思われます。入出力について理解するのに苦労して おりますが、何卒ご教授の程お願い致します。

    • ベストアンサー
    • Java
  • 足し算するプログラム

    タイトルの通りですが足し算をするプログラムを書いてみました。 第一引数を第二引数を足し算するのですが引数に「001」や「002」などの数字が入力された時に足し算した結果として素直に「00*」と足し算が出来ません。何かいい方法は無いでしょうか?教えてください。 import java.text.*; class Tashizan { public static void main(String[] args) { try { if(args.length == 0) { System.out.println("引数を整数値で入力して下さい。"); } else if(args.length == 1) { System.out.println("引数を整数値で2つ入力して下さい。"); } else if(args.length == 2) { int a = Integer.parseInt(args[0]); int b = Integer.parseInt(args[1]); if(a <= 999999999 && b <= 999999999) { int wa = a + b; System.out.println(a + "+" + b + "の和は" + wa + "です。"); } else { System.out.println("入力した桁数を9桁以下か確認してください。"); } } else { System.out.println("引数は整数値で2つ入力して下さい。"); } } catch(NumberFormatException nfe) { System.out.println("整数値を2つ入力して下さい。"); } catch(Exception e) { System.out.println(e + "エラー発生!処理を終了します。"); } } }

    • ベストアンサー
    • Java
  • 前回の質問のプログラムの応用 Java言語

    MAX_QUESTION の部分を指定できるようにしたいのです! たとえば、20と入力したら、20問、問題が生成されるようなプログラムです。 教えてください。よろしくお願いします。 import java.io.*; public class Java05 { /** 表示する問題の個数 */ public static final int MAX_QUESTION=10; /** * 足し算の問題をMAX_QUESTION回繰り返して出題する。 * 最後に正答率を表示する。 */ public static void main(String[] args){ int goodAnswer=0; //正答の個数 System.out.println("これから足し算の問題を"+MAX_QUESTION+"問出します。"); /* * 以下、問題を繰り返し表示し、ユーザからの解答を判断する。 * その後、正答の数を数える。 */ for(int i=0;i<MAX_QUESTION;i++){ boolean ok=showQuestion(i+1); if(ok){ goodAnswer++; } } double rate=goodAnswer*100.0/MAX_QUESTION; System.out.println(""); System.out.println("問題は"+MAX_QUESTION+"問"); System.out.println("正答数は"+goodAnswer+"問"); System.out.println("不正解数"+(MAX_QUESTION-goodAnswer)+"問"); System.out.println("正答率は"+rate+"%"); } /** * showQuestionは足し算の問題を1問出し、答えを待つ。 * 正答、誤答の別を表示する。 * 正答の場合は ture を返す。 */ public static boolean showQuestion(int questno){ double dblA=Math.random()*1000; double dblB=Math.random()*1000; int intA=(int)dblA; int intB=(int)dblB; BufferedReader reader=new BufferedReader(new InputStreamReader(System.in)); try{ System.out.println("[第"+questno+"問] "+intA+"+"+intB+"="); String line=reader.readLine(); int result=Integer.parseInt(line); if(intA+intB==result){ System.out.println("正解!"); return true; }else{ System.out.println("不正解!"); return false; } }catch(IOException e){ System.out.println(e); }catch(NumberFormatException e){ System.out.println("入力が正しくありません。"); } return false; } }

  • 入力された入力値と最大値、最小値を表示させるプログラムで、最大値と最小

    入力された入力値と最大値、最小値を表示させるプログラムで、最大値と最小値のプログラムを下記に作成してみたら最小値が0になりました。そして、もう一つ繰り返し文を作ってみたら、最大値・最小値がうまく表示されました。この違いはどうしてですか?教えてください。 import java.io.*; class Hairetu1 { public static void main(String args[]) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); System.out.print("データはいくつですか?"); String str = br.readLine(); int num = Integer.parseInt(str); int a[]=new int[num]; int i; int max=0; int min=a[0]; for(i=0; i<a.length; i++){ System.out.print((i+1)+"番目は?"); str = br.readLine(); int tmp = Integer.parseInt(str); a[i] = tmp; if(max<tmp){ max=tmp; } if(min>tmp){ min=tmp; } } System.out.println("入力した値は"+test.length); System.out.println("最大は"+max); System.out.println("最小は"+min); } }

    • ベストアンサー
    • Java
  • Java言語のプログラムをC言語にする場合

    次の2つのJava言語のプログラムをC言語にしたいのですが、C言語でプログラムを書いたことがありません。C言語にする場合はどう書けばいいのでしょうか? import java.io.*; public class Sort { public static void main(String[] args) { BufferedReader reader = new BufferedReader(new InputStreamReader(System.in)); try{ System.out.println("整数値を入力してください"); String line = reader.readLine(); int a = Integer.parseInt(line); String line2 = reader.readLine(); int b = Integer.parseInt(line2); String line3 = reader.readLine(); int c = Integer.parseInt(line3); String line4 = reader.readLine(); int d = Integer.parseInt(line4); int[] data = {a, b, c, d}; for (int i = 0; i< data.length - 1 ; i++) { for (int j = i + 1; j< data.length; j++) { if(data[i] > data[j]) { int e = data[i]; data[i] = data[j]; data[j] = e; } } } System.out.println("昇順に並べ替えると、"); for (int i = 0; i< data.length; i++) { System.out.print(data[i] + " "); } System.out.println("です。"); } catch (IOException e){ System.out.println(e); } catch (NumberFormatException e) { System.out.println("数式の形式が正しくありません。"); } } } import java.io.*; public class Yakusu { public static void main(String[] args) { BufferedReader reader = new BufferedReader(new InputStreamReader(System.in)); try{ System.out.println("2つの整数値を入力してください"); System.out.print("整数A : "); String line = reader.readLine(); int a = Integer.parseInt(line); System.out.print("整数B : "); String line2 = reader.readLine(); int b = Integer.parseInt(line2); if(a%b == 0){ System.out.println("BはAの約数です"); } else { System.out.println("BはAの約数ではありません"); } } catch (IOException e){ System.out.println(e); } catch (NumberFormatException e) { System.out.println("数式の形式が正しくありません。"); } } }

  • キーボードから入力させる関係のなんですが

    引数を1つ設定してプログラムを起動させて、 引数が"A"の場合、 「Aを起動します」 と表示させたと同時に、 「キーボードから何か入力して下さい」と、 後に続けて表示させ、 入力した文字が Bの場合~~~ Cの場合~~~ といったプログラムはどう組めばよいのでしょうか? --------------------------- import java.io.*; class test { public static void main(String args[]) throws IOException { int x = Integer.parseInt(args[0]); System.out.println( x + "を起動します"); System.out.println("キーボードから何か入力してください"); BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String pp = br.readLine(); //入力されたのが Bの場合~~~ //        Cの場合~~~  } } --------------------------- 上記はコンパイルできませんが、こういう感じでしょうか?

    • ベストアンサー
    • 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
  • 入力データ数を入力して、その数だけ整数値を入力し配列を格納した後、入力

    入力データ数を入力して、その数だけ整数値を入力し配列を格納した後、入力した値を横に表示するプログラムを下記に作成したのですが、思う通りに表示されません。初期化しても最後の値になるし、なぜでしょうか? import java.io.*; class Hairetu1 { public static void main(String args[]) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); System.out.print("データはいくつですか?"); String str = br.readLine(); int num = Integer.parseInt(str); int a[]=new int[num]; int i,tmp=0; for(i=0; i<a.length; i++){ System.out.print((i+1)+"番目は?"); str = br.readLine(); tmp = Integer.parseInt(str); a[i] = tmp; } for(i=0; i<a.length; i++){ System.out.print("入力した値は"+tmp+"\t"); }

    • ベストアンサー
    • Java

専門家に質問してみよう