- ベストアンサー
While文の終わりにセミコロンが無いのは?
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
{ }を使った複文になっているのでセミコロンがありません while(i) printf("%d\n", i--); 単文だけなら必要です
その他の回答 (1)
- shred
- ベストアンサー率35% (25/70)
whileと{}をセットで覚えてしまうとそのような誤解が生まれると思います。 while 式 と考えれば良いかと思います。複数の式も式です。 そのようなときに{}で括るので;が無くなったように思ってしまってるのだと思います。
お礼
早速ご回答ありがとうございます。{}が複数の式を扱っているという肝心な規則を忘れていました。
関連するQ&A
- Java do while文
do while文を使って、int num = new Random().nextInt(10);を利用して、ランダム数値が2で割り切れるか0だったらwhile文を終わらせるdo-while文を作成したいのですが、わかりません。わかる方、教えてください。お願いします。
- 締切済み
- Java
- do~while文がよくわかりません
今参考書で勉強しているのですが、do~while文がよくわかりません 。コードは下記のようになります。どうして前の処理結果が足されていくのか理解できません。こんな馬鹿にどうかわかりやすくご教授していただけないでしょうか!? <?php $s = $i = 0; do{ ++$i; $s += $i; }while($i < 10); print "1 から $i までの和は $s"; ?>
- ベストアンサー
- PHP
- switch文とwhile文を用いたプログラムに関して
swich文とwhile文を用いたプログラムについて 授業の課題で、swich文とwhile文を用いたプログラムを作りなさい。いう課題が出ました。 5桁以上9桁以下の正の整数を入力し、4で割り切れたとき、何桁の数字かを出力。4でわって1余ったとき、すべての桁の合計を出力。3余ったとき、与えられた数の逆を変数に代入し、その変数を出力(単純に表示するわけではなく、数字として表示) といったものです。 途中からの授業参加で、C言語に関する知識はほとんどありません。do文を用いたプログラムは見つけれたのですが、while文とswich文を用いろということなので、do文は使えないです。 どなたか教えていただけませんか? 今日中にわからないとちょっとやばいです・・・。 よろしくお願いします
- ベストアンサー
- C・C++・C#
- do-while文が禁止される理由
コーディング規約の中でdo-while文の使用が禁止されている例をよく見かけます。 確かに、 while(1){ ・・・ if(・・・){ break; } } とした方が判りやすく運用の柔軟性も高いと思いますが、 do-whileはそんなに可読性を落としてしまうものなのでしょうか?
- ベストアンサー
- C・C++・C#
- CGI勉強中です(do文while文)
プログラミング初心者です。 do文とwhile文はほとんど同じ動作をするようですが、プログラミングする時にごちゃまぜにして記述しても大丈夫なのでしょうか?
- ベストアンサー
- Perl
- do while文の条件
do while文の条件にprintfを使う場合、これはありなんでしょうか? 内容:0が入力されていたら、whileのprintfを実行してからdoに戻る。0以外ならprintfを実行しないで処理を抜ける。 int i; do { printf("0以外の数字を入力してください。\n"); scanf("%d",&i); }while(i == 0 && printf("まじめに入力してください。\n"));
- 締切済み
- C・C++・C#
- pascalにおけるwhile文の条件について
「cがA,B,Cのどれかの場合はwhile文の内容を繰り返す」というプログラムは while c in ['A','B','C'] do begin ~ end; と書けますが、「cがA,B,Cのどれかで無い場合はwhile文の内容を繰り返す」というプログラムはどのように書けばよいのでしょうか。私は while not c in ['A','B','C'] do begin ~ end; だと思ったのですが、エラーが発生したのでどうやら違うようです。 わかる人がいれば教えてください。よろしくお願いします。
- 締切済み
- その他(プログラミング・開発)
- perlのdo-while文で抜け出せない
perlのwhile,do-while,last文に関する質問です。 1) code1のようなプログラムを作ったのですが eでdo_whileを抜け出すことができませんがなぜでしょうか。 ---code1(eで抜け出せない)(NG)--- my $sum=0; do{ my $a=<STDIN>; chomp($a); $sum=$sum+$a; }while($a ne 'e'); print $sum; -------------------------------- 2) 抜け出す方法をいろいろ試していたら while(1)にしてlastで抜けるようにすると code2ではeで抜け出すことができるように なりましたが、 do~while(1)にしたcode3では、 「Can't "last" outside a loop block at …」C というエラーが発生します。 code2とcode3はwhileがdo~whileになって 条件を見る位置がループの始めか終わりの 違いだけなのに、なぜ、code2ではOKで、 code3ではエラーになるのでしょうか。 ---code2(eで抜け出せる)(OK)----- my $sum=0; while(1) { my $a=<STDIN>; chomp($a); last if ($a eq 'e'); $sum=$sum+$a; }; print $sum; --------------------------------- ---code3(エラーになる)(NG)----- my $sum=0; do{ my $a=<STDIN>; chomp($a); last if ($a eq 'e'); $sum=$sum+$a; }while(1); print $sum; --------------------------------- よろしくお願いします。 Windows7 , ActivePerl(v5.16.3)
- ベストアンサー
- Perl
- Do whileとFor文の脱出処理について
はじめまして。 VBについて素朴な質問なのですが For…Nextから抜けるにはExit for を使いDo…Loopから抜けるにはExit Doを使用しますが以下の場合はFor文の中でExit doを使用するのは可能なのでしょうか? Do while(条件) for i=1 to 12 if 条件 then exit do end if 処理1 next i 処理2 loop 本来ならfor文の中ではExit forを使用しますがfor文はDo while文 の中に含まれていますのでExit doでも出れると思ったのですがそうではないのでしょうか?ご回答よろしくお願いします。
- 締切済み
- Visual Basic
お礼
早速ご回答ありがとうございます。{}が複数の分を扱っている肝心な規則を忘れていました。また、単文ならセミコロンが必要なことも教えていただきありがとうございます。