網絡学習管理 明解C言語入門1 C programming (d) break & continue

C programming (d) break & continue

break文

switch文のところでbreakというのが何回も登場しました。
switch文での意味は「switch文から抜け出す」という意味でしたね。
breakはswitch文以外にもfor文やwhile文のループの中でも使うことが出来ます。
この時もbreakは「for文やwhile文のループから抜け出す」という意味を持っています。

break文を使って抜けられるのはループひとつだけです。ですから、二重、三重のループを抜けるには、その度にbreak文を使うようになります。

continue文

continueはfor文やwhile文などのループ処理をスキップさせるに用います。
breakとは違い、continueはスキップした後は、ループの先頭に戻ります

#include	<stdio.h>

int main(void)
{
  int i = 1, n, sum;
 
  sum = 0;
  while (i <= 5) {
    printf("正の整数を入力 : ");
    scanf("%d", &n);
    if (n < 0)
      continue;
    sum = sum + n;
    i++;
  }
  printf("sum = %d\n", sum);
  
  return 0;
}

 

無限ループ

while(1)とすると、基本的に処理は無限に繰り返されます。これは、条件式が偽の場合は、0、真の場合はそれ以外の値をとることを利用した方法で、無限に繰り返されます。 ただ、こういった無限ループでも、break(ブレイク)があると、ループから出ることができます。

電卓のプログラムで無限ループで、繰り返し計算を行います。

#include <stdio.h>
main()
{
    double  a, b, ans;
    char    op;

    printf( "加減乗除(+,-,*,/)ができます。指定例:2+5、終了時はq\n" );
    while( 1 ) {
        printf( "ready : " );
        if( scanf( "%lf %c %lf", &a, &op, &b ) != 3 ) break;
        switch( op ) {
        case '+': ans = a + b; break;
        case '-': ans = a - b; break;
        case '*': ans = a * b; break;
        case '/': if( b == 0.0 ) {
                     printf( "Error!(ゼロでの割算はできません)\n" );
                     continue;
                  }
                  ans = a / b; break;
        default:  printf( "Error!(演算記号の指定が誤りです)\n" );
                  continue;
        }
        printf( "--> %g\n", ans );
    }
    printf( ".... Power OFF\n" );
}

 

多重ループ

九九の計算結果を表示するプログラム

#include <stdio.h>

int main(void)
{
  int i, j;
  
  for (i = 1; i <= 9; i++) {
    for (j = 1; j <= 9; j++) {
      printf(" %2d", i * j);
    }
    printf("\n");
  }
  return 0;
}

forループの2重ループを使っています。
最初のループでiが1の時はその下のforループで、
jが1から9まで増加させながら、その1の値と掛け合わせた結果を表示しています。
つまり九九の計算結果となるわけです。
二つ目のforループが終わると、printfで改行コードを出力してるので、
ちょうど9個結果を横に表示した後に次のループに入ることになり、
綺麗に九九の表が表示されるというわけです。

計算結果の間にスペースがあるのは一つ目のprintfで%2dの前にスペースが入っているからです。

ミニテスト

http://lmspress.net/courses/c-programming-i/

演習(p101)

  1.  演習4-24 (A, B クラス)
    — List(4-18)、List(4-19)p99 を参考してください。
  2. 演習4-25 (C, D クラス)

Leave a Reply

Your email address will not be published. Required fields are marked *

CAPTCHA


Related Post

C programming (8) if statementC programming (8) if statement

  制御構文は、上から下へ流れるプログラムを途中で流れを分岐させたり、流れを繰り返したりすることができる構文を表します。 制御構文の主な種類としてif文、for文、while文、switch文の4パターンあります。 if文を使うと、分岐構造を作ることができます。 条件式の真偽 状態 真偽 値 条件が満たされた場合 true(真) 1(0以外) 条件が満たされなかった場合 false(偽) 0  関係演算子 2つの値の大小を比較します。 条件を満たせば「真(true)」、条件を満たさなければ「偽(false)」となります。 関係演算子の形式は以下の通りです。 演算子 例 […]

C programming (9) logical operatorsC programming (9) logical operators

C の推奨されるスタイル C言語やJava言語は、中括弧 { } を使ってブロックを記述します。 中括弧だけでなく、ブロックの範囲を字下げ(インデント)して記述します。 ただ、中括弧をどの位置に記述するかによって、コーディング・スタイルの宗教論争が起きています。 主に中括弧の位置の違いなのですが、なぜか字下げスタイルと呼ばれています。 // 中括弧の開始を、文末に記述するスタイルを「K&R スタイル」といいます。 void FuncA() {   if ( ... ) { […]