• 締切済み

javaの初心者向けプログラムの宿題です

「指定された値の倍数を10個表示するプログラム」 です。 選択授業で取ったjavaプログラミングの宿題ですが行き詰ってしまいました。 部分的にはなんとなく理解できるのですが、全体像がつかめません。 流れだけでもご教示願います。 (1)値の入力を促す「数値入力」メッセージを表示し、文字列入力を待機する。 (2)その入力から文字列を取得して文字列をint型の数値に変換。 (3) 入力された文字列が数値以外の場合は、例外(NumberFormatException)が発生した場合に、メッセージ「半角数字で数値指定」を表示してアプリケーションを終了。 (4) 倍数を表示できる数値の範囲は、2以上100未満、範囲外の数値が入力された場合にはメッセージ「[入力から取得した数値]の倍数は表示できません。0から100までの数値を指定してください。」を表示してアプリケーションを終了。 注) 処理を開始するメッセージを表示し、入力された数値の倍数を標準出力に10個表示する。 各数値は、タブ(¥t)で区切り、5個表示毎に改行。 倍数は、0を含めて表示。 よろしくおねがいします。

みんなの回答

回答No.2

まだ配列無しなのか・・・forは有りなのかな? > 入力した値(仮にnとする)を式に入れてやるには、どのように入力すればよろしいでしょうか? > String line=reader.readLine(); この行でキーボードからの入力を文字列として変数に入れました。 > line=reader.readLine(); この列は要らないかな、2回目の読み込みは不要では。 > int number=Integer. parseInt(line); この列で文字列の値を数値に変換しました このnumberが入力された数字なので、計算するには int hoge = number * 2; のように書けば numver*2 の値が hoge 変数に入ります。 > for文の内容は > for(int n=2;ni<100;n++); > for(int j=0j;n<20;j++); > System out.println((i*n)); nとかniとかjとか0jとかiとか色々ありますが、ここでの繰り返しは「0~9」があれば良いので、 for( int i=0; i<=9; i++ ){ // 繰り返す処理 } となります。 forと配列無しの場合は単純に手作業で0~9まで掛けて表示してあげればおk。 System out.print( (number*0) + "\t" ); System out.print( (number*1) + "\t" );  : System out.println( (number*9) ); ちなみに配列というのは「添え字を付けて複数の値を入れられる変数」です。 int[] kekka = new int[10]; と宣言すれば、kekka[0]~kekka[9]までに別の数値を入れる事が出来ます。 またこの[0]や[9]のような数字は変数で記述出来ますので、例えば int[] kekka = new int[10]; for( int i=0; i<=9; i++ ){ kekka[i]=i; } とすれば、kekka[0]には数値の0が、kekka[1]には数値の1が、・・・、kekka[9]には数値の9が入ります。 勉強用のHPなんかは「java 入門」とかで検索すると山ほど出てきますので、 自分で見易い、分かり易い所を参考にしてみてください。

kariyushi7
質問者

お礼

丁寧に解説してくださり本当にありがとうございます。 四苦八苦しながら少しずつ進めています。

回答No.1

倍数って何との倍数ですか?0含めて10個って事は単純に0~9? 流れはこんなんで。 1) 値を受取る 2) 数値チェック、数値でなければ終了、そうで無ければint化 3) 数値が範囲内かチェック、範囲外なら終了 4) forで0~9まで回してそれぞれの積を配列に入れる 5) 配列の中身を表示 4と5については一々配列に入れず1個ずつ表示するという手もありますが、 一旦値を保存した方が便利なのでこの形の方が良いかな

kariyushi7
質問者

お礼

私のような未熟者に回答いただいてありがとうございます。 >倍数って何との倍数ですか?0含めて10個って事は単純に0~9? そうでう。受け取った値に対して0~9で乗算します。↓のように途中まで書いてみましたが挫折しました。 mport java.io.*; public class PracticalExercises1{ public static void main(String[]args){ System.out.println("数値を入力する。"); BufferedReader reader=new BufferedReader(new InputStreamReader(System.in)); try{ String line=reader.readLine(); line=reader.readLine(); int number=Integer. parseInt(line); }catch(IOException e){ System.out.println(e); }catch (NumberFormatException e){ System.out.println("半角数字で数値指定してください。"); 教えていただいた1)~5)のような流れになることはわかるのですが 入力した値(仮にnとする)を式に入れてやるには、どのように入力すればよろしいでしょうか? for文の内容は for(int n=2;ni<100;n++); for(int j=0j;n<20;j++); System out.println((i*n)); このようにしてみたのですが・・・ 配列というのをまだならっていないのでよくわかりませんが調べてみます。 もし詳しく書いてるようなHPがありましたら教えてくださればありがたいです。

関連するQ&A

  • JavaのE-learning教材の問題です

    書き出し以外理解不能です。部分的には少し分かるのですがもお手上げ状態です。 1. クラス名は、Test1クラスとし、このクラスにメインメソッドを実装する。 2. アプリケーションを起動すると、数値の入力を促すメッセージ(1)を表示し、文字列が入力されるのを待機する。 3. 標準入力から文字列を取得し、その文字列をint型の数値に変換する。 4. 入力された文字列が数値ではない場合は、例外(NumberFormatException)が発生した場合に、メッセージ(3)を表示し、アプリケーションを終了する。 5. 倍数を表示できる数値の範囲は、2以上100未満とし、範囲外の数値が入力された場合にはメッセージ(4)を表示し、アプリケーションを終了する。 6. 処理を開始するメッセージ(2)を表示し、入力された数値の倍数を画面(標準出力)に20個表示する。それぞれの数値は、タブ(¥t)で区切り、5個表示する度に改行を入れる。 7. 倍数は、0を含めて表示を行うこと。 (例) 3の倍数(0 3 6 9… 54 57) メッセージ名 メッセージ内容 メッセージ(1) 数値を入力してください(半角数字) : メッセージ(2) [標準入力から取得した数値]の倍数を表示します。 メッセージ(3) 半角数字で数値を指定してください。 メッセージ(4) [標準入力から取得した数値]の倍数は表示できません。0から100までの数値を指定してください。

  • JAVAのプログラムについて・・・

    次のプログラムで分からないところがあります。 教えてください。 プログラムの説明 ・キーボードからの任意の個数の数値を入力し、入力した数値の個数と最大値を画面に表示する。 ・負の値を入力したらプログラムを終了する。いきなり負の値を入力することはないものとする。 入出力例 ()内の数値は、入力データである。この例の場合、入力は8個であるが、最後のデータは処理の終了を指示するものであるから、データの個数には含まない。 input1:(18) input2:(10) input3:(7) input4:(16) input5:(9) input6:(20) input7:(13) input8:-1 number=7 max=20 プログラムを一応考えてみました。 import java.io.*; class RepEx2{ public static void main(String[]args) throws IOException{ int in , n , max = 0; BufferedReader br = new BufferedReader(new InputsteeamReader(System.in)); //入力の準備       for(n = 1;true; n++){ //永久ループ          System.out.print("input"+n+":"); String s = br.readLine(); //キーボードからの文字列を入力          in =(1) (s); //文字列を数値に変換          if(in < 0) (2); //入力数値が負の時はルループ脱出          if((3)>(4))(5); //最大値の更新    } n--; (6)       System.out.printin("nember = " + n + " max = " + max); } } これでいいのでしょうか? (1)~5までは何を入れたらいいですか? また、(6)のn--;の命令はなぜ必要になるのでしょうか?

  • java 9の倍数 プログラム

    数字による長い文字列を入力し、それが9の倍数であるかないかを出力するプログラム。但し、9の倍 数であることの判定は、次のように行うこととする。すなわち、%(あまり)は使わないこととする。 423711は、9の倍数である。 4+2+3+7+1+1=18 1+8=9 ⇒ 9となれば、9の倍数 385772は、9の倍数でない。 3+8+5+7+7+2=32 3+2=5 ⇒ 9未満となれば、9の倍数ではない。 “d=Integer.parseInt(s);”を用いると、大きな桁数の入力につ いてエラーとなってしまう。そうならないようなプログラム 。 通報する

  • 終了条件文字列 「exit」

    (1) 「1以上の整数を入力:」と表示 (2) 1行読み込みをし、入力された値が文字列「exit」と等しいかどうかをチェックし、「exit」と等しい場合はプ ログラムを終了する。 (3) 入力された値が1以上の場合、階乗の計算 という問題で、どうしても「exit」で終わることができません。 できても、NumberFormatException になって終わりってしまいます。 こんな説明で理解してもらえるか分かりませんが、教えていただけませんか。

    • ベストアンサー
    • Java
  • C言語の宿題ができません。

    演習問題4】 4-1. キーボードから整数値を入力して、奇数か偶数かを表示させる。 (if文で記述する) 4-2. キーボードから2つの整数値を入力して2つの値の大、等、小の関係を表示する。 (if文で記述する) 4-3. 月を入力し、入力した月の日数を表示する。ただし2月は28日とする。 (if文で記述する) 4-4. 月を入力し、入力した月の日数を表示する。ただし2月は28日とする。 (switch文で記述する) 【応用問題4】 r4-1. 問題4-1のプログラムで、さらに値が4の倍数であった場合に4の倍数であること も表示する。 ※ヒント:0は4の倍数ではない r4-2. キーボードから3つの整数値を入力して3つの値の大、中、小の関係を表示 する。 (if文で記述する) r4-3. 月を入力し、入力した月の日数を表示するプログラムで、入力した月が1~12の 範囲を越えていた場合エラーメッセージを表示させる。

  • お願いします!「Javaについて」 コマンドプロンプトへの表示

    avaについての質問なんですが初心者でわからないのでお願いします。 プログラムに引数を1つ指定して実行した時、入力された値が ・3の倍数の場合は    入力された値に2を掛けた値から1を引いた値  を表示 ・5の倍数の場合は  入力された値に2を足した値を3で割った値  を表示(表示するのは小数点第2位までで、小数点第3位を四捨五入したいんです)   ・それ以外の場合    入力された値は、3の倍数でも5の倍数でもありません」  と表示 【3と5の公倍数が入力された場合は、5の倍数として値を処理したい】 そしてコマンドプロンプトで :\Work>java test 3 演算結果は 5 です とか D:\Work>java test 5 演算結果は 2.33 です と、表示させたいんです。。。 class test { public static void main(String box[]) { int A,B,C,D,E,V,W,X,Y,Z; A = Integer.parseInt(box[0]); if ( ) { System.out.print(""); } else if ( ) { System.out.print(""); } else { System.out.print(""); } } } 上記からよくわかりません、、教えてください!

    • ベストアンサー
    • Java
  • 4つのJavaファイルについての質問

    この4つのプログラムを実行するためのtera padへの入力表記(?)が分かりません、分かる方どうか教えてください!(1つだけでも嬉しいです!) (1.)コマンドラインから整数値を入力して、入力された数値が 10 かそれより大きいかを判断し、メッセージを表示します。   (入力された数値が 10 かそれより大きい場合は okメッセージを出力し、それ以外の場合はNGメッセージを出力します。)このプログラムを作成してください。 (2.)1から200までの数値の中の7の倍数を表示させるプログラムを作成してください。 (3.)1から100までの数値の総和を計算・表示するプログラムを作成してください。 (4)実行結果が 出力したいアスタリスク(*)の数を入力してください: 10 10を入力されました。 **********となるプログラムを作成してください。

  • 【C言語初心者です】制御文をループに関して

    C言語習いたての者です。どうぞよろしくお願いします。 1~20の範囲内で数値を5回入力させ、入力順に画面に出力するプログラムを作りたいと思っています。 この中で、範囲外の数値か、入力済みの数値が入力された場合に、 それに応じたエラーメッセージを表示させ、再入力を要求する仕組みを 加えようと思い、 制御文を用いてどういうループにすればいいか考えているのですが、 思うような結果が返ってきません。 今まで私が考えていたループの構造としては、 int count = 0;<<ループ用カウンター宣言・初期化>> if(<<入力された数値が指定範囲内の時>>) { _ for(<<countが範囲内かどうか>>) _ { __ if(<<入力された数値が入力済みではない時>>) __ { ___ break;<<ループ終了。次の数値入力>> __ } __ <<数値重複用エラーメッセージ出力>> _ } _ break;<<ループ終了。次の数値入力>> } <<範囲外数値用エラーメッセージ出力>> 条件としては、 ・配列と制御文を用いる ・標準ヘッダファイルは<stdio.h>のみを用いる 上記のループをどう修正したらいいか、を教えていただけるとうれしいです。

  • 入力チェックのプログラム

    すみません、教えてください。 『キーボードから入力された数値の範囲をチェックする。 範囲は0~10000とし、入力の際に文字(A~Z,a~z,特殊文字)、空白を含む入力、リターンのみの入力はERRORを表示する。再度、入力を要求し、正常データが入力された時点でOK(入力数値)と表示し、終了する』 という問題なのですが、whileを使って、配列に格納した文字を条件があうまで判定すればいいのではないかとは思うのですが、範囲のチェックをどのようにしたらよいのかよくわかりません。 どのようにしたらよいか教えていただけませんでしょうか。 よろしくお願いします。

  • 倍数を探すプログラムを教えて下さい。

    指定した範囲の整数の中から(2つのテキストボックス)、テキストボックス(元の数値)で検索実行(検索実行ボタンもあり)した際に、その個数(倍数の数)と倍数全てを表示するプログラムを教えて下さい。 検索実行した際に、倍数の数のテキストボックスと倍数の表示のテキストボックスに数を表示させる必要があります。また、倍数の表示は、/で区切らないといけません。お願いします。