🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
for

for文は、様々なプログラミング言語で使われている制御構造です。for文に定義している条件から外れるまで、for文内の命令文を繰り返し実行します。

if

if文とは様々なプログラミング言語で使用される制御構文の一種であり、条件によって処理の流れを制御します。

while

Whileは多くの言語で使われるコントロール構造であり、特定の条件が満たされる限り一連の命令を繰り返し実行します。

プログラミング言語

プログラミング言語はパソコン上で実行することができるソースコードを記述する為に扱う言語の総称です。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Q&A

解決済

2回答

658閲覧

JavaScript/if文の使い所と条件式が分からない

kirakira3003

総合スコア20

for

for文は、様々なプログラミング言語で使われている制御構造です。for文に定義している条件から外れるまで、for文内の命令文を繰り返し実行します。

if

if文とは様々なプログラミング言語で使用される制御構文の一種であり、条件によって処理の流れを制御します。

while

Whileは多くの言語で使われるコントロール構造であり、特定の条件が満たされる限り一連の命令を繰り返し実行します。

プログラミング言語

プログラミング言語はパソコン上で実行することができるソースコードを記述する為に扱う言語の総称です。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

0グッド

0クリップ

投稿2021/03/13 08:34

JavaScript初学者です。

ランダムな0~30の整数値を100回コンソールに出力して、
もし2回連続で同じ数字が出力されたら、
処理を止めたいというような、プログラムを作ろうと思ったのですが
どのようにすればいいのか?考えても思いつかず、質問させて頂きました。

下のコードのように
0~30のランダムな整数値を100回出力するやり方は
分かるのですが、2回連続で同じ数字が出力されたら
処理を止めたいという様なコードが思いつきません。

JavaScript

1for (let i = 1; i <= 100; i++) { 2 const ran = Math.floor(Math.random() * 31); 3 console.log(ran); 4 }

恐らくif文を使うと思うのですが
どのようにすればいいのでしょうか?
その場合の条件式なども分からないので教えて欲しいです。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

m.ts10806

2021/03/13 08:47

ifが何をする機能なのかは把握されてるのでしょうか。
meg_

2021/03/13 08:55

> どのようにすればいいのか?考えても思いつかず、質問させて頂きました。 コーディング出来なくてもフローチャートでは表現出来ますか?
guest

回答2

0

ベストアンサー

解決の指針案

恐らくif文を使うと思うのですが

どのようにすればいいのでしょうか?

概ね下記のようなロジックで実現できるかと思います。

  1. コンソールに出力するごとに、その値を変数に保存しておく
  2. ran の値を算出した後、前回保存した値と同じであればforループを中断する

コード例

下記のコードでは、前回の値を保存する変数をpreviousValueと定義し、
ranの値を算出するごとに、それと同じ値かどうかをif文で判定しています。
その上で、前回と同じ値が出たときはforループ文を中断するbreakを用いて処理を止めています。

Javascript

1let previousValue = null 2for (let i = 1; i <= 100; i++) { 3 const ran = Math.floor(Math.random() * 31); 4 if (previousValue === ran) { 5 break; 6 } else { 7 previousValue = ran 8 } 9 console.log(ran); 10}

なにか不明な点があればお伝え下さい。
以上ご確認をよろしくおねがいします!

投稿2021/03/13 08:42

編集2021/03/13 08:43
marasonPD

総合スコア170

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kirakira3003

2021/03/13 12:11

なるほどです。 とても理解出来ました。 ちなみに、この場合は1回目のranで 0が出力された場合は、処理が止まるのでしょうか?
marasonPD

2021/03/13 12:46 編集

いえ、1回目のループ時は`previousValueの値は1行目で定義したとおり`null`なので、 1回目のranで0が出力されても`previousValue === ran`は`false`になり、処理は止まりません。
kirakira3003

2021/03/13 13:19

了解です! ありがとうございました。
guest

0

一回前の数字を変数にでも置いといて、今回出た数字と比較して同じかどうかを判断すればいいです

投稿2021/03/13 08:36

y_waiwai

総合スコア88038

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kirakira3003

2021/03/13 12:12

なるほどです。 教えて頂き、ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問