質問をすることでしか得られない、回答やアドバイスがある。

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

新規登録して質問してみよう
ただいま回答率
85.35%
JavaScript

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

Q&A

解決済

3回答

848閲覧

flagがなぜ必要なのか理由を明確にしたい。

nozo1224

総合スコア1

JavaScript

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

0グッド

0クリップ

投稿2020/05/11 06:46

前提・実現したいこと

javascriptで素数とそれ以外を分ける。

なぜflagが必要なのかわからない。

発生している問題

let list = []; // 2から100までを繰り返す for(let i = 2; i <= 100; i++) { // 変数flagに素数の場合の値を代入してください let flag = 0; // 2からi-1までの数を繰り返す for(let j = 2; j < i; j++) { // 素数を判断する条件式を記述してください if(i % j === 0) { // 〜は素数ではありませんと出力してください console.log(`${i}は素数ではありません`); // 素数でない場合、変数flagの値を更新してください flag = 1; // ネストされたfor文を停止 break; } } // flagが0の条件式を記述してください if(flag === 0){ list.push(i); // 〜は素数ですと出力してください console.log(`${i}は素数です`); } } // 素数の数を左の例のように出力してください console.log("素数は"+list.length+"個あります");

該当のソースコード

flagの部分

試したこと

自分なりに考えたがわからないのでたくしました。

補足情報(FW/ツールのバージョンなど)

ここにより詳細な情報を記載してください。

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

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

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

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

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

otn

2020/05/11 06:51

ある整数が素数かどうかを、どうやって判断するかは理解していますか?
nozo1224

2020/05/11 07:18

if文で条件分けをしていくということではないですか?
otn

2020/05/11 07:36

その条件を聞いたのですが。。。
nozo1224

2020/05/11 08:30

あまり理解できてないです。。。
think49

2020/05/11 09:07 編集

削除
guest

回答3

0

ベストアンサー

答えは出ているようですが、行動力が足りないと感じました。

flagは無くてもいいように感じるのですが、flagがないと機能しないのでしょうか?

そう感じるのであれば、「flagがないコード」を書いて、元コードと比較してはいかがでしょうか。

他人のコードを読んで何となく感じるのと、自分でコードを書いて理解するのでは、理解力に大きな差があると思います。
課題は、

  • 「素数ではありません」を出力しなかった時に「素数です」を出力するにはどうすればいいか

ですが、nozo1224 さんはどうやって解決するのでしょう?
いくつか代替コードが出来たら、各々のコードの長所/短所を列挙すると、見えてくるものがあると思います。

※エラトステネスのふるい等、発想が異なるものは除外するとして、私の中では「flagがないコード」は2つあります。

Re: nozo1224 さん

投稿2020/05/11 09:18

think49

総合スコア18189

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

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

nozo1224

2020/05/11 09:24

おっしゃる通り行動が足りなかったにつきます。 もっと自分で考えて行動します!
guest

0

条件が合致したのか、合致していないのかをそのflagで判断しています

投稿2020/05/11 06:47

y_waiwai

総合スコア88042

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

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

nozo1224

2020/05/11 06:52

flagは無くてもいいように感じるのですが、flagがないと機能しないのでしょうか?
y_waiwai

2020/05/11 06:54

なくても書けます まあ、そうしたらちょっと面倒になる、という違いしかありませんが。
guest

0

なぜflagが必要なのかわからない。

なしでも書けます。

javascript

1outer_loop: 2for(let i = 2; i <= 100; i++) { 3 // 2からi-1までの数を繰り返す 4 for(let j = 2; j < i; j++) { 5 // 素数を判断する条件式を記述してください 6 if(i % j === 0) { 7 // 〜は素数ではありませんと出力してください 8 console.log(`${i}は素数ではありません`); 9 continue outer_loop; 10 } 11 } 12 // flagが0の条件式を記述してください 13 if(flag === 0){ 14 list.push(i); 15 // 〜は素数ですと出力してください 16 console.log(`${i}は素数です`); 17 } 18}

投稿2020/05/11 06:52

maisumakun

総合スコア146018

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問