do while文を使って、int num = new Random().nextInt(10);を利用して、ランダム数値が2で割り切れるか0だったらwhile文を終わらせるdo-while文を作成したいのですが、わかりません。わかる方、教えてください。お願いします。

A 回答 (3件)

プログラムを概略を日本語で書いてみましょう。



1) 乱数を求める
2) 1)で求めた乱数が 0 または2で割り切れるならループ終了。そうでないなら 1) へ

となります。
ここまでがわからないなら、問題文を読むことができていません。
Javaの前に国語の復習をしましょう。


do~whileループは
do {
 繰り返す内容
} while( ここの条件が成り立つときは、ループを続ける/ 不成立ならループを止める) ;
となっています。

これと先程の「日本語」と合せれば

do {
繰り返す内容「1) 乱数を求める」
} while ( 「→の条件でないなら」ループを続ける/「1)で求めた乱数が 0 または2で割り切れるなら」ループを止める) ;

となります。
この中の「日本語」を「Java言語」に翻訳したものが「Javaのプログラム」です。

whileの中はちょっと複雑に見えます。
しかし、落ち着いて考えれば
『「1)で求めた乱数が 0 または2で割り切れる」 でないなら』ループ継続
であり
! (「1)で求めた乱数が 0 または2で割り切れる」)
だとわかります。 ! は 条件の真偽を反転させる演算子です。
また、算数の知識があれば、 「1)で求めた乱数が 0 または2で割り切れる」とは偶数であり、「偶数でない」とは「奇数である」ということだとわかります。

whileで判定せずに、ifで判定させ、breakでループを脱出する、という手段もあります。
ですが、この問題程度に使うテクニックではありません。





#1の補足にあったプログラム、ご自身で理解できていないようですが、この程度の規模なら、あなたがコンピュータになって、書いてある通りに実行するのもよいでしょう。

まず、次のものを用意します
○鉛筆と消しゴム : 下記へ書いたり消したりするのに使います。
○(紙の)メモ帳 : 変数の記憶に使います。
○罫線入りレポート用紙 : 画面表示に相当します。
○サイコロ: できれば 0~9の目が出るもの。無ければ1~6で代用


int num = new Random().nextInt(10);
→ メモに
num 「  」
と書きます。変数numを記憶するところです。
Random().nextint(10)は毎回サイコロを振って値を決めます。
例えば、ここで「3」と出たら、メモに
num「 3 」
と書き込みます

num = 9;
→変数num を変更します。
まず、消しゴムで「」の中を消します。次に「9」を書きます。

do{
→ doの開始です。whileでここに戻ってきます。

System.out.println(num / 2);
→ 画面出力なので、num/2 を計算して、レポート用紙に 書きます。
num はint、2もint なので、 int / int = 小数点以下切り捨て となることに注意。

}while(num < 10);
→ メモには num「 9 」と書いてあるはずです
9<10なので、doへ戻ります。

do{
→ 戻ってきました。

System.out.println(num / 2);
→ 画面出力なので、num/2 を計算して、レポート用紙に 書きます。
num はint、2もint なので、 int / int = 小数点以下切り捨て となることに注意。

}while(num < 10);
→ メモには num「 9 」と書いてあるはずです
9<10なので、doへ戻ります。

do{
→ 戻ってきました。

System.out.println(num / 2);
→ 画面出力(以下略

人間なら、そろそろ無駄なことをしていると気付いて、やめるころです。
ですが、コンピュータはそんなことは気にせず、言われた通りに忠実に繰り返します。
    • good
    • 0

>int num = new Random().nextInt(10);



ここで乱数を発生させているのに

>num = 9;

固定値にしたらダメです。

>}while(num < 10);

偶数か0だったら(0も偶数と考えると、要するに2で割ったあまりが0ならば)
という条件になっていません。

この回答への補足

if文も使ったほうがいいということですか?

補足日時:2014/09/26 15:08
    • good
    • 0

どこまでわかった?



何が分からない?

自分の頭を使う気はある?

この回答への補足

public static void main(String [] args){

int num = new Random().nextInt(10);

num = 9;

do{

System.out.println(num / 2);

}while(num < 10);

System.out.println("余りは:" + num);

}

}

までわかりました。出力結果がるーぷしてしまいます。

補足日時:2014/09/26 13:31
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

今、見られている記事はコレ!

  • エルフ田さん:第70話「絵と向き合うということ」

    エルフ(ファンタジーとかに出てくる長寿の種族)の「エルフ田」と、ただの人間である女子社員2人による日常ギャグ。エルフならではのズレたツッコミでバシバシ人間界の話題を斬っていきます。

  • たまランチ:第46話「エビチリ」

    外ランチを愛してやまない元気な女子社員・たまちゃん(26)。オシャレなお店より「安くておいしい」お店が大好き! そんな女子力低めなたまちゃんの、色気より食い気な日々をつづります。

  • 女子必見!2016年のトレンド水着最新ナビ

    夏目前、今年もデパートでは水着がお目見えするようになった。「教えて!goo」には、スタイルに自信の無いという女性から「どんな水着を買えばいいのか わかりません」という質問が。これに対し、「ワンピースは、生...

  • ポイっと捨てる前に…卵の殻でふきんを漂白できるか実験してみた

    毎日のように出るゴミのひとつに卵の殻がある。捨てるたびにこれが何かに使えないかと思っていた。そこで「教えて!goo」で「卵の殻の処分について」という質問を発見。さっそく、のぞいてみると卵の殻の再利用につ...

  • 真面目に働かない同僚への賢い対処法

    皆さんは今の職場に何か悩みがないだろうか。特に人間関係の悩みともなると、それが原因で退職や転職も考えるほど深刻なこともある。「教えて!goo」を見ていても、沢山の仕事の悩みが寄せられている。そんな中で今...

おしトピ編集部からのゆる~い質問を出題中

お題をもっとみる

このQ&Aを見た人が検索しているワード


このカテゴリの人気Q&Aランキング

おすすめ情報

カテゴリ