繰り返しの中断(break)

/**********************************/
/* データの和(負のデータで終了) */
/*      coded by Y.Suganuma       */
/**********************************/
#include <stdio.h>

int main()
{
/*
	 データ数の入力
*/
	int n;
	printf("データ数は? ");
	scanf("%d", &n);
/*
	 和の計算
*/
	int i1, sum = 0;
	for (i1 = 0; i1 < n; i1++) {
		int x;
		printf("   データを入力して下さい ");
		scanf("%d", &x);
		if (x < 0)
			break;
		else
			sum += x;
	}
/*
	 出力
*/
	printf("和=%d\n", sum);

	return 0;
}
		

  多重ループから一度に抜け出したいような場合には,各ループ毎に break 文を使用する必要があります.以下に示す方法では,負のデータを入力すると,2 重ループの外側に一度に抜け出せます.もちろん,上のプログラムをこの方法で記述することも可能です.

/****************************/
/* 多重ループからの脱出     */
/*      coded by Y.Suganuma */
/****************************/
#include <stdio.h>

int main()
{
/*
	 データ数の入力
*/
	int n;
	printf("クラス数は? ");
	scanf("%d", &n);
/*
	 和の計算
*/
	int i1, sum = 0, x = 0;
	for (i1 = 0; i1 < n && x >= 0; i1++) {
		int m;
		printf("人数は? ");
		scanf("%d", &m);
		int i2;
		for (i2 = 0; i2 < m && x >= 0; i2++) {
			printf("   データを入力して下さい ");
			scanf("%d", &x);
			if (x >= 0)
				sum += x;
		}
	}
/*
	 出力
*/
	printf("和=%d\n", sum);
	return 0;
}