ループを使った課題

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
mai

ループを使った課題

#1

投稿記事 by mai » 17年前

以前は課題のアドバイスと回答をいただきありがとうございました。 {無限ループを使って、変数の数に1.5ずつ加算して50をこえたらそこで終了、ただし3の倍数だけを表示する。} という課題で教科書を調べてみたのですが、forをもちいて作成すればいいのでしょうか まったくわからずこまっています どうかおねがいします

keichan

Re:課題

#2

投稿記事 by keichan » 17年前

>forをもちいて作成すればいいのでしょうか
forを用いるとこんな感じですね。
#include <stdio.h>

int main()
{
    double sum = 0.0;   /* 初期値が指定されていないのでとりあえず 0 で初期化 */
    for( ; sum < 50.0; ) {
        if( (int)sum % 3 == 0 ) {
            printf([color=#0000ff">"%lf\n"[/color], sum);   /* 最初の加算に入る前に出力をしてもいいのか指定がないのでとりあえず出力 */
        }
        sum += 1.5;
    }
    return 0;
}
これを参考に while を用いて作ってみてください^^

mai

Re:課題

#3

投稿記事 by mai » 17年前

keichanさんアドバイスありがとうございます。教科書をさがしてみたところ for while 2つのやりかたがのっていたのですが、使い分けとかはあるのでしょうか

keichan

Re:課題

#4

投稿記事 by keichan » 17年前

言語仕様的に明確な使い分けが規定されているわけではありません。

ただ、一般的とはわかりませんが私がしている使い分け方を載せます。

・for
既定回数の反復処理を行う場合に使用。
例)1~10までprintfで出力を行う
  for( int i=1; i<=10; i++ ) {
    printf("%d\n", i);
  }

・while
反復処理を何回行えばよいか状況によって異なる場合に使用。
例)ある数を2で割り続け、割った後の結果が0になるまで反復
  int a = 100;
  while( a != 0 ) {
    a /= 2;
    printf("%d\n", a);
  }

box

Re:課題

#5

投稿記事 by box » 17年前

> for while 2つのやりかた
for (A; B; C) {
	何かの処理;
}

と

A;
while (B) {
	何かの処理;
	C;
}
は、「何かの処理」に continue; を含まない場合、全く等価です。
「この場合にはこちらでなければならない」というような
決まり事はありません。
お好きな方をお使いください。

mai

Re:課題

#6

投稿記事 by mai » 17年前

みなさんありがとうございました。これからwhile文に挑戦してみたいとおもいます。 

管理人

Re:課題

#7

投稿記事 by 管理人 » 17年前

皆様が、丁寧に解説していらっしゃるので、必要ないかと思いますが

・for文 は何回ループさせるか初めにわかっている時使う
・while文は何回ループさせるか初めにわかっていない時に使う

と覚えておくとよいでしょう。

閉鎖

“C言語何でも質問掲示板” へ戻る