#include <stdio.h> int main(){ int i = 0; _loop: i++; printf("%d\n",i); if(i < 10 ){ goto _loop; } return 0; }
勉強がてら以上のプログラムをhttps://codeiq.jp/challenge/2518のサイトから持ってきたのですがどうといてよいかわかりません。
変数iに0から+1増えていき、9に達したら再び0になるのはわかるのですが、gotoの部分をどう置き換えればよいかわかりません。
またなぜloopではなく_loopなのでしょうか?
ただ、答えを書いてしまうとcodeiqさんに申し訳ないのでヒントを頂けないでしょうか?
どうかよろしくお願いいたします。
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答5件
0
変数iに0から+1増えていき、9に達したら再び0になるのはわかるのですが
ちがうよ? 10になったら終了するだけだよ。
またなぜloopではなく_loopなのでしょうか?
意味なんてないよ。ruupu でも loooooop でも _ でも、keywordでない限りなんでもかまわない。
ヒントを頂けないでしょうか?
i++;
printf("%d\n",i);
を、i < 10 である間繰り返せ。
投稿2018/04/06 06:09
編集2018/04/06 06:17総合スコア16614
0
C++でループ(繰り返し)実行する構文には、"for", "while", "do while" の3種類があります。
題意は、「元のコードをいずれかのループ構文を使って、同じ動作をするように書き直せ」ということですから
1)元のプログラムの動作を理解する
2)いずれかのループ構文を使ってコードを書き、元のプログラムの動作と比較する。
3)同じ動作をするコードが書けたら、おしまい。動作が違うなら、2)に戻って別のループ構文でコードを書く。
というような手順で解いてゆくのが素直だと思います。
投稿2018/04/06 06:45
総合スコア6915
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
0
ベストアンサー
変数iに0から+1増えていき、9に達したら再び0になるのはわかるのですが
ここの認識違いますね。
10に達していなかったら再び_loopから処理を始めるという流れになります。
またなぜloopではなく_loopなのでしょうか?
C言語では予約語にloopはないので、単にラベルだよというのがわかりやすいように名前をつけているのだと思います。
答えを書いてしまうとcodeiqさんに申し訳ないのでヒントを頂けないでしょうか?
for文の使い方を学べばよいでしょう。
基本的な書き方はこんな感じです。
for(i = 0; i < 5; i++)
変数iを0から始めて1ずつカウントアップします。
5より小さい間(つまり4まで)ループを続けます。
投稿2018/04/06 06:14
総合スコア16998
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/04/06 07:28 編集
2018/04/06 07:29
2018/04/06 07:31
2018/04/06 07:48
2018/04/06 07:51
2018/04/06 07:54 編集
2018/04/06 07:56
2018/04/06 07:57
2018/04/06 08:00
2018/04/06 08:00
2018/04/06 08:01
2018/04/06 08:03
0
"_loop"は、goto分での飛び先ラベルです。
ラベル名はある程度自由に使えます。
Jumpな命名が好きな人ならjpほにゃならですかね。
_jp1:
//process
if ( ) {
goto _jp2;
}
goto _jp1;
_jp2:
投稿2018/04/06 06:12
総合スコア187
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
0
goto というのはどういう動きをするものなのか調べてみましたか?
またなぜloopではなく_loopなのでしょうか?
については、「予約語」「予約語とは」などで検索してみると良いと思います。
【追記】
他の方の回答を見てちょっと思ったので追記します。
ttyp03 さん wrote:
単にラベルだよというのがわかりやすいように
ああ、予約語がどうのというよりは そういう意図ですね。
loop は予約語じゃないからラベルに使えるとしても、
『 ぱっと見 予約語っぽく見える単語は そのまま使うのは抵抗あるので
アンスコ付けたり 分かりやすくしたい 』
という感覚です。
投稿2018/04/06 06:17
編集2018/04/06 06:27総合スコア1126
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。