[TIL]211013
continue&breakの利用
質問です。
九九段を出力するが、偶数段(2段、4段、6段、8段)のみを出力する.また、2段出力2×2、4段出力4×4、6段出力6×6、8段出力8×8のプログラムを実現する.このような混乱した問題を提起したのは、continue
とbreak
の使い方を把握するためだ.だから私たちはできるだけcontinue
とbreak
ゲートを使ってこの問題を解決することを望んでいます.
🤔
どうやってbreak
を挟んで使うのか分かりません.私の想像力の限界...break
ゲートを使うと、解答コードを見てから熟知し、他のものを使って問題を解くことにします.
2段、4段等を変数dan
とし、後に掛けた数字を変数i
として指定し、i
をdan
未満に設定する.
だから出てきたコードは以下の通りです.
コード#コード#
#include <stdio.h>
int main(void)
{
int i;
int dan = 2; // 2단부터 시작.
printf("짝수단 구구단을 출력합니다.\n");
while (dan <= 8) // 8단까지 시행
{
if (dan % 2 != 0) // 홀수면 i++ 을 통해 짝수가 되게 함.
continue;
for (i = 1; i <= dan; i++) // i는 dan보다 크면 안됨.
printf("%d x %d = %d\n", dan, i, dan * i);
dan++;
}
return 0;
}
上記のコードではwhile
の代わりにfor
を使用します.for (; dan <= 8; dan++)
{
if (dan % 2 != 0)
continue;
for (i = 1; i <= dan; i++)
printf("%d x %d = %d\n", dan, i, dan * i);
}
これを使用すると、同じ結果値が出力されます.
実行結果
解答コード
#include <stdio.h>
int main(void)
{
int i;
int dan;
printf("짝수단 구구단을 출력합니다.\n");
for (dan = 1; dan < 10; dan++) // 구구단 진행
{
if (dan % 2 != 0) // 홀수면 for문으로 돌아가서 dan++시행해서 짝수로 만듦.
continue;
for (i = 1; i < 10; i++)
{
if (dan < i) // dan이 i보다 작다면 for문 종료.
break;
printf("%d x %d = %d\n", dan, i, dan * i);
}
}
return 0;
}
コードをよく見ると、i
を使用するfor
文では、条件文if
が使用され、dan
がi
より小さい場合は、for
文の使用を停止する条件(break
を使用)が使用されます.チェック!
✍
break
の使用
:繰り返し文を停止します(while
、for
)!for
ゲート内で使用するが、break
ゲートを使用する場合は、if
の条件~~を設定してこの条件で使用し、離脱する.
質問です。
以下の式を満たすすべてのAとZを求めるプログラムを作成しましょう.
AZ
+ZA
ㅡㅡㅡ
99
ちなみに、できるだけ多くの組み合わせを試してみるためには、複文を重ねなければなりません.
コード#コード#
#include <stdio.h>
int main(void)
{
int A, Z;
printf("AZ+ZA = 99를 충족하는 값은\n");
for (A = 0; A < 10; A++)
{
for (Z = 0; Z < 10; Z++)
{
if ((A * 10 + Z) + (Z * 10 + A) != 99) // AZ+ZA = 99가 아닌 경우,
continue; // for 반복.
else // AZ+ZA = 99인 경우,
printf("A는 %d, Z는 %d.\n", A, Z); // 해당되는 A값과 Z값을 출력.
}
}
return 0;
}
実行結果
✍
回答コードグローバル変数にint result;
for (Z = 0; Z < 10; Z++)
を追加する内容は次のとおりです.for (Z = 0; Z < 10; Z++)
{
if(A==Z) // A값과 Z값이 같은 경우 반복문으로 다시 돌아감.
continue;
result = (A*10+Z)+(Z*10+A);
if(result==99) // reult가 99인 경우,
printf("%d%d+%d%d=%d \n", A, Z, Z, A, result); // 해당 값을 출력.
}
Reference
この問題について([TIL]211013), 我々は、より多くの情報をここで見つけました
https://velog.io/@namung/TIL211013
テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol
#include <stdio.h>
int main(void)
{
int i;
int dan = 2; // 2단부터 시작.
printf("짝수단 구구단을 출력합니다.\n");
while (dan <= 8) // 8단까지 시행
{
if (dan % 2 != 0) // 홀수면 i++ 을 통해 짝수가 되게 함.
continue;
for (i = 1; i <= dan; i++) // i는 dan보다 크면 안됨.
printf("%d x %d = %d\n", dan, i, dan * i);
dan++;
}
return 0;
}
for (; dan <= 8; dan++)
{
if (dan % 2 != 0)
continue;
for (i = 1; i <= dan; i++)
printf("%d x %d = %d\n", dan, i, dan * i);
}
#include <stdio.h>
int main(void)
{
int i;
int dan;
printf("짝수단 구구단을 출력합니다.\n");
for (dan = 1; dan < 10; dan++) // 구구단 진행
{
if (dan % 2 != 0) // 홀수면 for문으로 돌아가서 dan++시행해서 짝수로 만듦.
continue;
for (i = 1; i < 10; i++)
{
if (dan < i) // dan이 i보다 작다면 for문 종료.
break;
printf("%d x %d = %d\n", dan, i, dan * i);
}
}
return 0;
}
#include <stdio.h>
int main(void)
{
int A, Z;
printf("AZ+ZA = 99를 충족하는 값은\n");
for (A = 0; A < 10; A++)
{
for (Z = 0; Z < 10; Z++)
{
if ((A * 10 + Z) + (Z * 10 + A) != 99) // AZ+ZA = 99가 아닌 경우,
continue; // for 반복.
else // AZ+ZA = 99인 경우,
printf("A는 %d, Z는 %d.\n", A, Z); // 해당되는 A값과 Z값을 출력.
}
}
return 0;
}
for (Z = 0; Z < 10; Z++)
{
if(A==Z) // A값과 Z값이 같은 경우 반복문으로 다시 돌아감.
continue;
result = (A*10+Z)+(Z*10+A);
if(result==99) // reult가 99인 경우,
printf("%d%d+%d%d=%d \n", A, Z, Z, A, result); // 해당 값을 출력.
}
Reference
この問題について([TIL]211013), 我々は、より多くの情報をここで見つけました https://velog.io/@namung/TIL211013テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol