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

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

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

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

Q&A

解決済

2回答

818閲覧

js while文

退会済みユーザー

退会済みユーザー

総合スコア0

JavaScript

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

0グッド

0クリップ

投稿2016/07/04 13:54

jsで下記のようなコードを見たのですが、判定条件がイマイチよくわらないのですが、どうなっているのでしょうか?

また、なにを見ればこのような形のコードが載っているのでしょうか?

var i=0; // 今回は0を入れておきます。 while((i++) != 0){ console.log(i); // iが表示されない }

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

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

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

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

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

otn

2016/07/04 14:04

これだけ簡単な構文だと、何が分からないのか、伝わってこないのですが、逆に、何が分かるのでしょうか?
guest

回答2

0

i++は、「iに1を加える」、「加える前のiを返す」という2つの操作を行う演算子です。ほぼ同様な動作をするようにわかりやすく書きなおせば、こうなります(ただし、ループを抜けた時のiの値は違います)。

javascript

1var i=0; // 今回は0を入れておきます。 2while(i != 0){ 3 i += 1; 4 console.log(i); // iが表示されない 5}

とはいえ、式の途中に++演算子を混ぜ込む形はかなり読みづらいので、どうしてもその形が必要な場面に遭遇した時とか、あるいはハッカー気分に浸りたいのでもなければ分けて書くことを、強くおすすめします。

投稿2016/07/04 14:10

maisumakun

総合スコア145184

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

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

退会済みユーザー

退会済みユーザー

2016/07/05 00:43

そうですね...とても読み辛いので、この書き方は控えます。 ありがとうございました。
guest

0

ベストアンサー

// iが表示されない

わからない部分というのはここでしょうか。下記 i++++i の違いを確認してみてください。

JavaScript

1var i = 0; 2while ( (i++) != 0 ) { // i が 0 以外のときに実行する 1回目の比較のとき、 3 // i はまだ加算されていないため、i === 0 となって実行されません。 4 console.log( 'a:' + i ); // 表示され無い 5 break; 6}

JavaScript

1var i = 0; 2while ( (++i) != 0 ) { // 上の例とは違い、1回目の比較のとき、 3 // i は加算されているため、i === 1 となって実行されます。 4 console.log( 'b:' + i ); // 表示される 5 break; // i が加算され続けるため、無限ループになるのでとりあえず強制的にwhileを抜けさせています。 6}

【インクリメント演算子 (++)、デクリメント演算子 (--) (JavaScript)】
https://msdn.microsoft.com/ja-jp/library/26k41698(v=vs.94).aspx

演算子が変数の前にある場合、値は式が評価される前に変更されます。演算子が変数の後ろにある場合、値は式が評価された後で変更されます。つまり、j = ++k; である場合、j の値は k の初期値に 1 を加えたものです。j = k++; である場合は、j は j に割り当てられた後で増加する k の初期値です。

投稿2016/07/04 17:08

kei344

総合スコア69407

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

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

退会済みユーザー

退会済みユーザー

2016/07/05 00:40

ご回答ありがとうございました。 理解できました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問