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

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

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

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

GsACADEMY

セカイを変えるエンジニア【GEEK】を養成する 授業料後払いのエンジニア養成学校です。 ①一流企業によるメンター指導 基本習得後は2ヶ月間メンターの個別指導でサービス完成を目指します。 ②480万円までの起業支援出資 起業志望者をサムライインキュベートが支援(審査あり)します。 ③初心者歓迎・授業料後払い 丸暗記ではなく、創りながら。初心者のための授業料後払い制度です。

Q&A

解決済

3回答

2996閲覧

javascriptのwhile構文の中のif構文について

Matayoshi

総合スコア35

JavaScript

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

GsACADEMY

セカイを変えるエンジニア【GEEK】を養成する 授業料後払いのエンジニア養成学校です。 ①一流企業によるメンター指導 基本習得後は2ヶ月間メンターの個別指導でサービス完成を目指します。 ②480万円までの起業支援出資 起業志望者をサムライインキュベートが支援(審査あり)します。 ③初心者歓迎・授業料後払い 丸暗記ではなく、創りながら。初心者のための授業料後払い制度です。

0グッド

0クリップ

投稿2015/05/06 04:47

javascriptで変数aかbが0になるまで処理を繰り返す動作をするために、
while構文を使用していますが、whileの中にifで条件分岐を作るとうまく動作しません。

while (a==0 || b==0 ){

function random(max){ return Math.floor(Math.random()*max + 1); } var num = random(3); function jyanken(c){ if(c==1 && num==1){ --省略-- } if(ore==1 && num==2){ --省略-- } --省略-- }

}

whileを使用せず、ifだけだと条件分岐は動作しますが、whileを使うときの特定の制限などあるのでしょうか?

変数cはHTMLの本文の中でonclickで使用しています。

初歩的な質問かと思いますが、宜しくお願いします。

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

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

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

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

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

guest

回答3

0

ベストアンサー

どういう結果を期待して、どういうコードを書いたのかを書いてもらわないと、アドバイスできません。

今のところ気になるのは、

変数aかbが0になるまで処理を繰り返す

と書いてあるのに、

while (a==0 || b==0 ){

と、「aもbも0でなくなるまで繰り返し」となっていることです。whileの後には「繰り返しをやめる条件」じゃなくて「繰り返しを続ける条件」を書きます。英単語whileの意味を辞書で調べてみてください。

変数aかbが0になるまで処理を繰り返す

であれば、
while(!(a==0 || b==0)){ あるいは while(a!=0 && b!=0){
です。

あと、whileの繰り返しの中で関数定義をしていますが、繰り返しの外で関数定義した方が良いでしょう。

投稿2015/05/06 05:17

otn

総合スコア84538

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

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

Matayoshi

2015/05/06 05:34

またwhileの使い方についてもアドバイスありがとうございます。 「繰り返しを続ける条件」なので、この場合はnotにすべきなんですね。 一度whileの外で関数作って試してみます! ありがとうございます!
Matayoshi

2015/05/06 09:02

whileの考え方などよりプラスになりましたので、ベストアンサーとさせて頂きました。 ありがとうございました!
guest

0

当たり前ですがjyanken()をwhileの外側から呼んでると反応
じゃんけんを作りたいならwhileよりもイベントハンドラのほうがいいかもしれません

投稿2015/05/06 05:22

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

Matayoshi

2015/05/06 05:32

whileの外で関数を定義するということでしょうか? まだ初心者でその辺の定義がわかっておらず申し訳ありません。 イベントハンドラも調べてみます。 ありがとうございます!
guest

0

functionを外に出したらどうなりますか?

function random(max){
return Math.floor(Math.random()*max) +1;
}

function jyanken(c){
return function(num){
if(c==1 && num==1){
--省略--
}
if(ore==1 && num==2){
--省略--
}
--省略--
}(random(3));
}

while(a<>0 and b<>0){
xx = jyanken(c);
}

のようにです.xxは,aやbの状態を変えるための値です.

投稿2015/05/06 05:15

katzC4ISR

総合スコア66

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

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

Matayoshi

2015/05/06 05:34

これから試してみようとしていたことを細かく記載して頂きありがとうございます! こちらで一度チャレンジしてみます!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問