- 1 1. whileæã®ç¹åŸŽãšäœ¿ãã©ãã
- 2 2. åºæ¬æ§æãšåŠçã®æµã
- 3 3. ãµã³ãã«ã³ãŒãã§åããçè§£
- 4 4. do-whileãšã®éã
- 5 5. breakã»continueã«ããå¶åŸ¡
- 6 6. è€æ°æ¡ä»¶ã§æ¡ä»¶åŒã匷å
- 7 7. å ¥ååŸ ã¡ãã»ã³ããã«å¶åŸ¡ã®å®è·µäŸ
- 8 8. ç¡éã«ãŒããšçµäºå¶åŸ¡
- 9 9. æ¡ä»¶åŒã®èœãšãç©ŽïŒæ³šæç¹
- 10 10. ãããã質åïŒFAQïŒ
- 10.1 Q1. whileæã®æ¡ä»¶åŒãæåããåœã®å Žåãã«ãŒãå ã¯1åãå®è¡ãããŸãããïŒ
- 10.2 Q2. do-whileæãšwhileæã®éãã¯äœã§ããïŒ
- 10.3 Q3. whileæã®æ¡ä»¶åŒã«è€æ°ã®æ¡ä»¶ãçµã¿åãããããšã¯ã§ããŸããïŒ
- 10.4 Q4. ç¡éã«ãŒãã«ãªããªãããã«ããã³ãã¯ïŒ
- 10.5 Q5. ãŠãŒã¶ãŒå ¥åãå€éšããŒã¿ã§whileæã®å¶åŸ¡ã¯ã§ããŸããïŒ
- 10.6 Q6. ifæãšwhileæã®æ¡ä»¶åŒã®éãã¯ãããŸããïŒ
- 10.7 Q7. whileæã®äžã§breakãcontinueãå€çšããŠã倧äžå€«ïŒ
- 10.8 Q8. whileæã®å€ã§å®çŸ©ãã倿°ã¯ã«ãŒãå ã§ã䜿ããŸããïŒ
- 11 11. ãŸãšããšæ¬¡ã®ã¹ããã
1. whileæã®ç¹åŸŽãšäœ¿ãã©ãã
Cèšèªã«ããããwhileæãã¯ãç¹å®ã®æ¡ä»¶ãæç«ããŠããéãåãåŠçãç¹°ãè¿ãããã®å¶åŸ¡æ§æã§ããããã°ã©ã ã®äžã§ç¹°ãè¿ãåŠçãå¿ èŠãªå Žé¢ã¯å€ããwhileæã¯ãã®äžã§ããç¹°ãè¿ãåæ°ãäºåã«æ±ºãŸã£ãŠããªããã±ãŒã¹ã§ç¹ã«æŽ»èºããŸãã
whileæã®ç¹åŸŽã¯ããæ¡ä»¶åŒãæç«ããŠããéããäœåºŠã§ãã«ãŒããç¶ããããšããç¹ã§ããæ¡ä»¶åŒãåœïŒfalseïŒã«ãªã£ãæç¹ã§ãå³åº§ã«ã«ãŒãããæããŠæ¬¡ã®åŠçã«é²ã¿ãŸãããã®æè»æ§ã®ãããã§ããŠãŒã¶ãŒããã®å ¥ååŸ ã¡ãããã¡ã€ã«ã®çµç«¯ã«éãããŸã§åŠçãç¹°ãè¿ãããå Žåãã»ã³ãµãŒå€ãªã©å€éšããã®å€åãç£èŠãããå Žåãªã©ãããŸããŸãªã·ãã¥ãšãŒã·ã§ã³ã§å©çšãããŠããŸãã
ãŸããCèšèªã«ã¯åããç¹°ãè¿ãåŠçãè¡ããforæãããdo-whileæãããããŸãããwhileæã¯ãç¹°ãè¿ãã¹ãåæ°ãæ¡ä»¶ãå®è¡äžã«å€ããããããªåŠçã«åããŠããŸããäŸãã°ãããŠãŒã¶ãŒã0ãå ¥åãããŸã§æ°å€ãåèšãç¶ããããšãã£ãåŠçã¯ãwhileæã®åŸæåéã§ãã
ãã®ããã«whileæã¯ãCèšèªã§æè»ãªç¹°ãè¿ãåŠçãå®çŸããããã®åºç€ãšãªãæ§æã®ã²ãšã€ã§ããæ¬¡ã®ã»ã¯ã·ã§ã³ã§ã¯ãwhileæã®åºæ¬çãªæ§æãšåŠçã®æµãã«ã€ããŠè©³ãã解説ããŸãã
2. åºæ¬æ§æãšåŠçã®æµã
whileæã¯ãCèšèªã«ãããç¹°ãè¿ãåŠçã®åºæ¬æ§æã®ã²ãšã€ã§ããäœ¿ãæ¹ã¯éåžžã«ã·ã³ãã«ã§ããæ¡ä»¶åŒããçïŒtrueïŒã§ããéãæå®ããåŠçãããã¯ãäœåºŠã§ãç¹°ãè¿ããŸããããã§ã¯ãåºæ¬çãªæ§æãšãã®æµãã«ã€ããŠè§£èª¬ããŸãã
whileæã®åºæ¬æ§æ
while (æ¡ä»¶åŒ) {
// ã«ãŒãå
ã§ç¹°ãè¿ãããåŠç
}
while
ã®åŸã«ç¶ãæ¬åŒ§å ïŒ`()ïŒã«ãæ¡ä»¶åŒããèšè¿°ããŸãã- æ¡ä»¶åŒããçïŒ1ïŒãã§ããéãæ³¢æ¬åŒ§
{}
ã®äžã«æžãããåŠçãç¹°ãè¿ãå®è¡ãããŸãã - æ¡ä»¶åŒããåœïŒ0ïŒãã«ãªããšãã«ãŒããæããŠæ¬¡ã®åŠçã«é²ã¿ãŸãã
whileæã®åŠçãããŒ
- ãŸããæ¡ä»¶åŒãè©äŸ¡ããŸãã
- æ¡ä»¶åŒãçïŒ1ïŒãªãããããã¯å ã®åŠçã1åå®è¡ãããŸãã
- åŠçãçµãããšãåã³æ¡ä»¶åŒã®è©äŸ¡ã«æ»ããŸãã
- æ¡ä»¶åŒãåœïŒ0ïŒã«ãªã£ãæç¹ã§ãã«ãŒãã¯çµäºããwhileæã®åŸãã®åŠçã«é²ã¿ãŸãã
ãã®æµãã«ãããwhileæã¯ãæ¡ä»¶ãæºããããŠããéã ããåãåŠçãç¹°ãè¿ãç¶ããããšãã§ããŸãã
å®è¡äŸïŒæ¡ä»¶ãæåããåœã®å Žå
whileæã¯ãæåã®æ¡ä»¶å€å®ã§ãåœããšå€æãããã°ãã«ãŒãå ã®åŠçã1åãå®è¡ãããã«çµããããšããããŸããäŸãã°ã次ã®ãããªã³ãŒãã§ãã
int n = 0;
while (n > 0) {
printf("nã¯æ£ã®æ°ã§ãã\n");
}
ãã®å Žåã倿°n
ã¯0ãªã®ã§ãæ¡ä»¶åŒn > 0
ã¯æåããåœã§ãããã£ãŠãprintf
ã®è¡ã¯äžåºŠãå®è¡ãããŸããã
ãã®ããã«ãwhileæã¯ãæ¡ä»¶åŒãæºãããŠããéã ãåŠçãç¹°ãè¿ããã·ã³ãã«ãã€åŒ·åãªå¶åŸ¡æ§æã§ãã
3. ãµã³ãã«ã³ãŒãã§åããçè§£
whileæã®åºæ¬çãªäœ¿ãæ¹ãæµããçè§£ãããšããã§ãå®éã«å ·äœçãªãµã³ãã«ã³ãŒããèŠãªããããã®åäœã確èªããŠã¿ãŸããããããã§ã¯ãåçŽãªã«ãŠã³ã¿ã«ããã«ãŒãããæååã®ç¹°ãè¿ãåºåãªã©ãåå¿è ã«ãåãããããäŸã玹ä»ããŸãã
äŸ1ïŒã«ãŠã³ã¿ã䜿ã£ãåºæ¬çãªwhileã«ãŒã
#include <stdio.h>
int main() {
int i = 1;
while (i <= 5) {
printf("iã®å€ã¯ %d ã§ãã\n", i);
i = i + 1; // iã1ãã€å¢ãã
}
return 0;
}
ãã®ã³ãŒãã§ã¯ã倿°i
ã1ããã¹ã¿ãŒãããi <= 5
ãšããæ¡ä»¶ãæºãããŠããéãã«ãŒãå
ã®printf
ãå®è¡ãããŸããã«ãŒãããšã«i
ã1ãã€å¢ãã5ãŸã§ç¹°ãè¿ãåºåãããŸãã
å®è¡çµæäŸïŒ
iã®å€ã¯ 1 ã§ãã
iã®å€ã¯ 2 ã§ãã
iã®å€ã¯ 3 ã§ãã
iã®å€ã¯ 4 ã§ãã
iã®å€ã¯ 5 ã§ãã
äŸ2ïŒãããã«ã¡ã¯ããè€æ°ååºåãã
#include <stdio.h>
int main() {
int count = 0;
while (count < 3) {
printf("ããã«ã¡ã¯\n");
count++;
}
return 0;
}
ãã®äŸã§ã¯ãcount
ã3ããå°ããéããããã«ã¡ã¯ããšè¡šç€ºããåŠçãç¹°ãè¿ããŠããŸãã
å®è¡çµæäŸïŒ
ããã«ã¡ã¯
ããã«ã¡ã¯
ããã«ã¡ã¯
äŸ3ïŒãŠãŒã¶ãŒã®å ¥åå€ã«å¿ããŠç¹°ãè¿ãåŠçãè¡ã
#include <stdio.h>
int main() {
int num;
printf("0ãå
¥åãããšçµäºããŸãã\n");
while (1) {
printf("æ°åãå
¥åããŠãã ããïŒ");
scanf("%d", &num);
if (num == 0) {
break; // 0ãå
¥åããããã«ãŒãçµäº
}
printf("å
¥åãããå€ã¯ %d ã§ãã\n", num);
}
printf("çµäºããŸãã\n");
return 0;
}
ãã®äŸã§ã¯ããŠãŒã¶ãŒãã0ããå
¥åãããŸã§ãæ°åã®å
¥åãšè¡šç€ºãç¹°ãè¿ããŸãã0ãå
¥åããããšbreak
æã§ã«ãŒããæããããã°ã©ã ãçµäºããŸãã
ãã®ããã«ãwhileæã¯ããŸããŸãªåœ¢ã§æè»ã«å©çšã§ããŸããã·ã³ãã«ãªã«ãŠã³ã¿ã«ãŒãããããŠãŒã¶ãŒå ¥åãå©çšããåŠçãŸã§ãå¹ åºãçšéã§æŽ»èºããŸãã
4. do-whileãšã®éã
Cèšèªã«ã¯ãwhileæãšãã䌌ããdo-whileæããšããå¶åŸ¡æ§æããããŸããäž¡è ã¯ã©ã¡ãããæ¡ä»¶ãæºããéãç¹°ãè¿ãåŠçãè¡ãããšããç¹ã§ã¯å ±éããŠããŸãããå®è¡ãããé åºãåäœã«éãããããŸãããã®ç« ã§ã¯ãwhileæãšdo-whileæã®éããšäœ¿ãåãã«ã€ããŠè§£èª¬ããŸãã
whileæãšdo-whileæã®æ§æã®éã
- whileæ
while (æ¡ä»¶åŒ) {
// ç¹°ãè¿ãããåŠç
}
- ãŸããæ¡ä»¶åŒããå€å®ããçïŒ1ïŒã®å Žåã«ã®ã¿ãããã¯å
ã®åŠçãå®è¡ããŸãã
- æ¡ä»¶åŒãåœïŒ0ïŒã®å Žåã¯ãäžåºŠãå®è¡ãããã«æ¬¡ã®åŠçã«é²ã¿ãŸãã
- do-whileæ
do {
// ç¹°ãè¿ãããåŠç
} while (æ¡ä»¶åŒ);
- ãŸããããã¯å
ã®åŠçã1åå®è¡ãããã®åŸã«ãæ¡ä»¶åŒããå€å®ããŸãã
- æ¡ä»¶åŒãçïŒ1ïŒã§ããã°ãåã³åŠçãããã¯ãå®è¡ããŸããåœïŒ0ïŒãªãã«ãŒããçµäºããŸãã
å®è¡é åºã®éããšç¹åŸŽ
- whileæã¯ãåå€å®åãã«ãŒãã§ããæ¡ä»¶åŒãæåã«å€å®ãããããå Žåã«ãã£ãŠã¯1åãåŠçãããªãããšããããŸãã
- do-whileæã¯ãåŸå€å®åãã«ãŒãã§ããå¿ ãæåã«1åã ãåŠçãããã¯ãå®è¡ãããã®ãç¹åŸŽã§ãã
äŸïŒdo-whileæã®ãµã³ãã«
#include <stdio.h>
int main() {
int n = 0;
do {
printf("nã®å€ã¯ %d ã§ãã\n", n);
n++;
} while (n < 3);
return 0;
}
ãã®å Žåãn
ã0ããã¹ã¿ãŒãããŠãn < 3
ãçã§ããéç¹°ãè¿ãããŸãã
å®è¡çµæäŸïŒ
nã®å€ã¯ 0 ã§ãã
nã®å€ã¯ 1 ã§ãã
nã®å€ã¯ 2 ã§ãã
ä»®ã«n
ã®åæå€ã3ã§ããdo-whileæã®å Žåã¯äžåºŠã ããnã®å€ã¯ 3 ã§ããããšè¡šç€ºãããŸãã
ç°¡åãªæ¯èŒè¡š
whileæ | do-whileæ | |
---|---|---|
å€å®ã¿ã€ãã³ã° | æåã«æ¡ä»¶å€å® | æåŸã«æ¡ä»¶å€å® |
å®è¡åæ° | 0åä»¥äž | 1åä»¥äž |
䜿ãã©ãã | å¿ ãããå®è¡ãå¿ èŠã§ãªãå Žå | å°ãªããšã1åã¯å¿ ãåŠçãããå Žå |
䜿ãåãã®ãã€ã³ã
- å ¥åå€ã®æ€èšŒããã¡ãã¥ãŒè¡šç€ºãªã©ãæäœ1åã¯å¿ ãåŠçããããå Žé¢ã§ã¯ãdo-whileæãé©ããŠããŸãã
- æ¡ä»¶ã«ãã£ãŠã¯ã1åãå®è¡ããªããããšãããåŸãå Žåã¯ãwhileæãå®å šã§ãã
ãã®ããã«ãäž¡è ã®ç¹åŸŽãçè§£ããŠé©åã«äœ¿ãåããããšã§ãããæè»ãªç¹°ãè¿ãåŠçãå®çŸã§ããŸãã
5. breakã»continueã«ããå¶åŸ¡
whileæã䜿ã£ãŠç¹°ãè¿ãåŠçãè¡ã£ãŠãããšããç¹å®ã®æ¡ä»¶ã§ã«ãŒããéäžã§çµäºãããããããæ¡ä»¶ã ãã¹ããããããããšãã£ãå Žé¢ããããããŸããããããå Žåã«äŸ¿å©ãªã®ããbreak
æãšcontinue
æã§ãããã®ç« ã§ã¯ãããããã®äœ¿ãæ¹ãšå®äŸã玹ä»ããŸãã
breakæïŒã«ãŒãã®å³æçµäº
break
æã¯ãwhileæãªã©ã®ã«ãŒãåŠçããæ¡ä»¶ã«åèŽããã¿ã€ãã³ã°ã§å³åº§ã«çµäºãããããã«äœ¿ããŸããããšãã°ããç¹å®ã®å€ãå
¥åããããã«ãŒããæããããå Žåãªã©ã«æå¹ã§ãã
äŸïŒç¹å®ã®å€ã§ã«ãŒããçµäºãã
#include <stdio.h>
int main() {
int n;
while (1) { // ç¡éã«ãŒã
printf("æŽæ°ãå
¥åããŠãã ããïŒ0ã§çµäºïŒïŒ");
scanf("%d", &n);
if (n == 0) {
break; // 0ãå
¥åããããã«ãŒãçµäº
}
printf("å
¥åãããå€ã¯ %d ã§ãã\n", n);
}
printf("ããã°ã©ã ãçµäºããŸãã\n");
return 0;
}
continueæïŒ1ååã®åŠçãã¹ããã
continue
æã¯ãwhileã«ãŒãå
ã§äœ¿ããšããã®æç¹ä»¥éã®åŠçãã¹ãããããŠã次ã®ã«ãŒãæ¡ä»¶å€å®ã«æ»ãã圹å²ãæãããŸããããšãã°ãå¶æ°ã ãåŠçãã¹ããããããããªã©ã«äŸ¿å©ã§ãã
äŸïŒå¶æ°ã®ãšãã ãåŠçãã¹ããããã
#include <stdio.h>
int main() {
int i = 1;
while (i <= 5) {
if (i % 2 == 0) {
i++; // iãå¢ãããŠãã
continue; // å¶æ°ãªã以äžãã¹ããã
}
printf("奿°ïŒ%d\n", i);
i++;
}
return 0;
}
å®è¡çµæäŸïŒ
奿°ïŒ1
奿°ïŒ3
奿°ïŒ5
ãŸãšã
break
ã¯ã«ãŒãã匷å¶çµäºãããæã«äœ¿ãcontinue
ã¯ãããæ¡ä»¶ã ããã®åã®åŠçãã¹ããããããæã«äœ¿ã
ãã®2ã€ã®å¶åŸ¡æãçµã¿åãããããšã§ãwhileæã®åäœãããæè»ãã€å¹ççã«ã³ã³ãããŒã«ã§ããŸãã
6. è€æ°æ¡ä»¶ã§æ¡ä»¶åŒã匷å
whileæã®æ¡ä»¶åŒã«ã¯ãåäžã®æ¯èŒã ãã§ãªããè€æ°ã®æ¡ä»¶ããçµã¿åãããŠèšè¿°ããããšãã§ããŸããããã«ãããããæè»ã§å®è·µçãªã«ãŒãå¶åŸ¡ãå¯èœãšãªããŸãããã®ç« ã§ã¯ãè€æ°æ¡ä»¶ã䜿ãéã®åºæ¬çãªæ¹æ³ãè«çæŒç®åã®äœ¿ãæ¹ãå ·äœäŸã玹ä»ããŸãã
è«çæŒç®åã®åºæ¬
Cèšèªã§ã¯ãæ¡ä»¶åŒãçµã¿åãããããã«äž»ã«ä»¥äžã®è«çæŒç®åã䜿ããŸãã
&&
ïŒANDïŒïŒäž¡æ¹ã®æ¡ä»¶ãçïŒtrueïŒã®å Žåã«ã®ã¿å šäœãçã«ãªã||
ïŒORïŒïŒããããäžæ¹ã§ãçãªãå šäœãçã«ãªã!
ïŒNOTïŒïŒæ¡ä»¶ã®çåœãé転ãããïŒçâåœãåœâçïŒ
äŸ1ïŒANDïŒ&&ïŒã䜿ã£ãè€æ°æ¡ä»¶
ãaã1以äžãã€bã10以äžãã®éãã«ãŒããç¹°ãè¿ãå Žå
#include <stdio.h>
int main() {
int a = 1, b = 15;
while (a < 5 && b > 10) {
printf("a = %d, b = %d\n", a, b);
a++;
b--;
}
return 0;
}
å®è¡çµæäŸïŒ
a = 1, b = 15
a = 2, b = 14
a = 3, b = 13
a = 4, b = 12
äŸ2ïŒORïŒ||ïŒã䜿ã£ãè€æ°æ¡ä»¶
ãxã5æªæºãŸãã¯yã20æªæºãã®éãã«ãŒããç¹°ãè¿ãå Žå
#include <stdio.h>
int main() {
int x = 3, y = 25;
while (x < 5 || y < 20) {
printf("x = %d, y = %d\n", x, y);
x++;
y--;
}
return 0;
}
å®è¡çµæäŸïŒ
x = 3, y = 25
x = 4, y = 24
x = 5, y = 23
x = 6, y = 22
x = 7, y = 21
x = 8, y = 20
x = 9, y = 19
ïŒy
ã20æªæºã«ãªããŸã§ç¹°ãè¿ãããïŒ

äŸ3ïŒNOTïŒ!ïŒã䜿ã£ãæ¡ä»¶åŒ
ãflgãåœã®éãã«ãŒãããå Žå
#include <stdio.h>
int main() {
int flg = 0;
while (!flg) {
printf("flgã0ãªã®ã§ã«ãŒãäžã§ãã\n");
flg = 1; // flgã1ã«ããŠã«ãŒãçµäº
}
return 0;
}
è«çæŒç®åã®åªå é äœã«æ³šæ
è€æ°ã®è«çæŒç®åãåæã«äœ¿ãå Žåãèšç®ã®é åºïŒåªå
é äœïŒã«æ³šæãå¿
èŠã§ãã
åºæ¬çã«ã!
â &&
â ||
ã®é ã«åªå
ããŠè©äŸ¡ãããŸããå¿
èŠã«å¿ããŠ()
ã§æç€ºçã«é åºãæå®ããŸãããã
è€æ°æ¡ä»¶ã䜿ãããšã§ãããè€éãªå€æåºæºã§ã«ãŒããå¶åŸ¡ããããšãå¯èœã§ãã
7. å ¥ååŸ ã¡ãã»ã³ããã«å¶åŸ¡ã®å®è·µäŸ
whileæã¯ããå€éšããã®å ¥åãã«å¿ããŠç¹°ãè¿ãåŠçãç¶ãããçµãããããããã±ãŒã¹ã§ãéåžžã«ãã䜿ãããŸããå žåçãªã®ãããŠãŒã¶ãŒã®å ¥åå€ããã¡ã€ã«ã®çµç«¯ãç£èŠãããã»ã³ããã«å¶åŸ¡ãã§ãããã®ç« ã§ã¯ãå®éã®äœ¿ãæ¹ãšãã€ã³ãã玹ä»ããŸãã
ã»ã³ããã«å¶åŸ¡ãšã¯ïŒ
ã»ã³ããã«ïŒsentinelïŒãšã¯ããçªäººãããèŠåŒµãããšãã£ãæå³ããããããã°ã©ãã³ã°ã®äžçã§ã¯ãã«ãŒãçµäºã®ç®å°ãšãªãå€ïŒçµäºæ¡ä»¶ã®ç¹å®å€ïŒãã®ããšãæããŸãã
ããšãã°ãã0ãå
¥åããããã«ãŒãçµäºããªã©ãç¹å®ã®å€ãâçµäºã®åå³âãšããŠäœ¿ããŸãã
äŸ1ïŒãŠãŒã¶ãŒå ¥åå€ã«ããã«ãŒãå¶åŸ¡
#include <stdio.h>
int main() {
int value, sum = 0;
printf("æŽæ°ãå
¥åããŠãã ããïŒ0ã§çµäºïŒïŒ\n");
while (1) {
scanf("%d", &value);
if (value == 0) {
break; // ã»ã³ããã«å€0ã§çµäº
}
sum += value;
}
printf("åèšå€ã¯ %d ã§ãã\n", sum);
return 0;
}
ãã®äŸã§ã¯ããŠãŒã¶ãŒã0ãå
¥åãããŸã§äœåºŠã§ãå€ãåãä»ããŠåèšãèšç®ããŸãã0ãå
¥åããããšbreak
æã§ã«ãŒããçµäºããŸãã
äŸ2ïŒæåå ¥åã«ããã«ãŒãçµäº
#include <stdio.h>
int main() {
char c;
printf("æåãå
¥åããŠãã ããïŒxã§çµäºïŒïŒ\n");
while (1) {
scanf(" %c", &c); // åã«ã¹ããŒã¹ãå
¥ããŠç©ºçœæåãã¹ããã
if (c == 'x') {
break;
}
printf("å
¥åãããæåïŒ%c\n", c);
}
printf("çµäºããŸãã\n");
return 0;
}
å®çšäŸïŒãã¡ã€ã«ã®çµç«¯ãŸã§åŠçãç¹°ãè¿ã
ãã¡ã€ã«åŠçã§ããã»ã³ããã«å¶åŸ¡ãã¯é »ç¹ã«äœ¿ãããŸããããšãã°ããã¡ã€ã«ã1è¡ãã€èªã¿èŸŒãã§çµç«¯ïŒEOFïŒãŸã§ç¹°ãè¿ãå ŽåïŒ
#include <stdio.h>
int main() {
FILE *fp = fopen("sample.txt", "r");
char buf[100];
if (fp == NULL) {
printf("ãã¡ã€ã«ãéããŸããã\n");
return 1;
}
while (fgets(buf, sizeof(buf), fp) != NULL) {
printf("%s", buf);
}
fclose(fp);
return 0;
}
ãã®äŸã§ã¯ãfgets
ãNULL
ãè¿ãããšããã»ã³ããã«ãšãªããã«ãŒããçµäºããŸãã
ãã®ããã«ãwhileæã¯å ¥åãå€éšããŒã¿ã®ç£èŠã»åŸ æ©åŠçã«éåžžã«äŸ¿å©ã§ãã
8. ç¡éã«ãŒããšçµäºå¶åŸ¡
Cèšèªã§ç¹°ãè¿ãåŠçãæžãéããç¡éã«ãŒããã¯ãã䜿ããããã¯ããã¯ã®ã²ãšã€ã§ããç¡éã«ãŒããšã¯ããã®åã®éããæå³çã«çµããããªããã«ãŒãã®ããšã§ãå€éšããã®å ¥åãç¹å®ã®æ¡ä»¶ãæç«ãããŸã§ããã°ã©ã ãåããç¶ãããå Žåãªã©ã«æŽ»çšãããŸãããã®ç« ã§ã¯ãç¡éã«ãŒãã®æžãæ¹ãšãå®å šã«çµäºãããããã®æ¹æ³ã«ã€ããŠè§£èª¬ããŸãã
ç¡éã«ãŒãã®æžãæ¹
Cèšèªã§ã¯ã以äžã®ããã«whileæã®æ¡ä»¶åŒããåžžã«çïŒ1ïŒãã«ããããšã§ç¡éã«ãŒããå®çŸã§ããŸãã
while (1) {
// ãã®äžã®åŠçãç¡éã«ç¹°ãè¿ããã
}
ãŸãã¯ããæ¡ä»¶åŒãåžžã«çã«ãªãããã«æžããããšã§ç¡éã«ãŒããäœããŸãã
int flag = 0;
while (flag == 0) {
// flagã0ã®ãŸãŸã«ããŠããéããç¡éã«å®è¡ããã
}
foræã§ã®ç¡éã«ãŒã
whileæã ãã§ãªããforæã§ã以äžã®ããã«ç¡éã«ãŒããæžããŸãã
for (;;) {
// ç¡éã«ãŒã
}
ç¡éã«ãŒãã®æŽ»çšäŸ
- ãŠãŒã¶ãŒããã®å ¥åããã£ãšåŸ ã¡ç¶ãã
- ã²ãŒã ãçµã¿èŸŒã¿ããã°ã©ã ã§åžžã«ã»ã³ãµãŒå€ãç£èŠãã
- ãµãŒããŒãå€éšããã®æ¥ç¶ãåŸ æ©ãã
ç¡éã«ãŒããå®å šã«æããæ¹æ³
ç¡éã«ãŒãã¯ãbreak
æãªã©ã䜿ã£ãŠãããæ¡ä»¶ãæç«ããæã ããã«ãŒããçµäºããã®ãäžè¬çã§ããããšãã°ããŠãŒã¶ãŒãç¹å®ã®å€ãå
¥åããå Žåãããšã©ãŒãçºçããå Žåã«ã«ãŒãããæãåºããŸãã
äŸïŒãŠãŒã¶ãŒã®å ¥åã§ã«ãŒãçµäº
#include <stdio.h>
int main() {
char c;
while (1) {
printf("çµäºãããå Žå㯠q ãå
¥åããŠãã ããïŒ");
scanf(" %c", &c);
if (c == 'q') {
break; // q ãå
¥åããããç¡éã«ãŒãçµäº
}
printf("ãŸã ã«ãŒãäžã§ãã\n");
}
printf("ã«ãŒããæããŸããã\n");
return 0;
}
泚æç¹
ç¡éã«ãŒãã¯äŸ¿å©ã§ããããã£ãããæãéããçšæãããŠããªããšãããã°ã©ã ãæ¢ãŸããªããªã£ãŠããŸããŸããå¿ ããçµäºæ¡ä»¶ããšãã«ãŒãããæããæ¹æ³ããçšæããŠãå®å šãªããã°ã©ã éçšãå¿ãããŸãããã
ç¡éã«ãŒãã®äœ¿ãæ¹ããã¹ã¿ãŒããã°ãCèšèªã®å¿çšåãããã«åºãããŸãã
9. æ¡ä»¶åŒã®èœãšãç©ŽïŒæ³šæç¹
whileæã®æ¡ä»¶åŒã¯ã·ã³ãã«ã«èŠããŸãããå®éã«ããã°ã©ã ãæžãäžã§ãæãã¬èœãšã穎ãã«ããã£ãŠããŸãã±ãŒã¹ãå€ããããŸãããã®ç« ã§ã¯ãç¹ã«åå¿è ãééãããããã€ã³ããæ³šæç¹ãæŽçããŠç޹ä»ããŸãã
1. 倿°ã®æŽæ°æŒãã«ããç¡éã«ãŒã
whileæã®äžã§ã«ãŒãå¶åŸ¡ã«äœ¿ã£ãŠãã倿°ãæ£ããæŽæ°ããªããšãæ¡ä»¶ããã£ãšçã®ãŸãŸã«ãªããæå³ããªãç¡éã«ãŒãã«é¥ã£ãŠããŸããŸãã
äŸïŒæŽæ°æŒãã«ããç¡éã«ãŒã
int i = 0;
while (i < 5) {
printf("i = %d\n", i);
// i++ ã®èšè¿°ããªããããiã¯0ã®ãŸãŸ
}
ãã®å Žåãi
ã¯å¢ããªãã®ã§ãi < 5
ãæ°žé ã«çãšãªããããã°ã©ã ãæ¢ãŸããŸããã
2. æ¯èŒæŒç®åã®ééãïŒ=ãš==ã®æ··åïŒ
Cèšèªã§ã¯ã=
ã¯ã代å
¥æŒç®åãã==
ã¯ãçãããã©ããã®æ¯èŒæŒç®åãã§ããæ¡ä»¶åŒã®äžã§ãããééãããšãæ³å®å€ã®åäœããã°ã®åå ã«ãªããŸãã
äŸïŒä»£å ¥ãšæ¯èŒã®æ··å
int n = 3;
while (n = 0) { // æ¬æ¥ã¯ while (n == 0) ãšæžãã¹ã
printf("nã¯0ã§ãã\n");
}
ãã®å Žåãn = 0
ã§nã0ã«ä»£å
¥ããããã®å€ïŒ0ïŒãæ¡ä»¶åŒã«äœ¿ãããããããæåããæ¡ä»¶ãåœããšãªããã«ãŒãæ¬äœã1床ãå®è¡ãããŸããã
3. æ¡ä»¶åŒã®è©äŸ¡èŠåïŒ0ã¯åœã0以å€ã¯çïŒ
Cèšèªã§ã¯ãæ¡ä»¶åŒã®å€ãã0ãã®å Žåã¯åœãã0以å€ãã®å Žåã¯çãšã¿ãªãããŸãããã®ã«ãŒã«ãç¥ããªããšãæãã¬ãã°ã«ã€ãªããããšããããŸãã
äŸïŒæ°å€ããã®ãŸãŸæ¡ä»¶åŒã«äœ¿ã
int flag = -1;
while (flag) {
// flagã0以å€ã®éãã«ãŒããç¶ã
flag = 0;
}
ãã®ããã«ãè² ã®å€ã1以å€ã®æ°å€ã§ããçããšããŠæ±ãããŸãã
4. è€éãªè«çåŒã§ã®åªå é äœãã¹
è€æ°ã®è«çæŒç®åïŒ&&, ||, !ãªã©ïŒãçµã¿åãããå Žåãåªå
é äœãééãããšæå³ããªãæ¡ä»¶å€å®ã«ãªãããšããããŸããææ§ãªæã¯å¿
ãã«ãã³()
ã§æç€ºããŸãããã
5. å ¥åå€ãå€éšããŒã¿ã®æ€èšŒäžè¶³
ãŠãŒã¶ãŒå ¥åå€ããã¡ã€ã«ããŒã¿ã䜿ã£ãŠwhileæãå¶åŸ¡ããéã¯ããäžæ£ãªå€ãããæ³å®å€ã®å ¥åãããã£ãå Žåãå®å šã«åäœããããã«æ³šæããŸãããã
ãŸãšã
- 倿°ã®æŽæ°æŒããæ¯èŒæŒç®åã®ãã¹ã«æ³šæ
- 0ãš0以å€ã®çåœå€å®ã«ãŒã«ãçè§£ãã
- è«çæŒç®åã®åªå é äœãã«ãã³ã®äœ¿ãæ¹ãéèŠ
- æ¡ä»¶åŒã®èšèšã«æ £ããŠãããšãwhileæã®ãã°ã¯å€§ããæžãããŸã
10. ãããã質åïŒFAQïŒ
Cèšèªã®whileæãæ¡ä»¶åŒã«ã€ããŠãåŠç¿è ãåçŽããã°ã©ãããããå¯ããããçåãQ&A圢åŒã§ãŸãšããŸãããçåç¹ãã€ãŸããããããã€ã³ããæŽçããå®å¿ããŠwhileæã䜿ãããªããããã«è§£èª¬ããŸãã
Q1. whileæã®æ¡ä»¶åŒãæåããåœã®å Žåãã«ãŒãå ã¯1åãå®è¡ãããŸãããïŒ
A. ã¯ãããã®éãã§ããwhileæã¯ãåå€å®åããªã®ã§ãæåã®æ¡ä»¶å€å®ãåœïŒfalseã0ïŒã®å Žåã¯ãã«ãŒãæ¬äœã¯1åãå®è¡ãããã«æ¬¡ã®åŠçã«é²ã¿ãŸãã
â»å°ãªããšã1åã¯å®è¡ãããå Žåã¯ãdo-whileæãå©çšããŸãããã
Q2. do-whileæãšwhileæã®éãã¯äœã§ããïŒ
A. äž»ãªéãã¯ãæ¡ä»¶åŒãå€å®ããã¿ã€ãã³ã°ãã§ãã
- whileæã¯ãåå€å®åããªã®ã§ãæ¡ä»¶åŒãåœãªãäžåºŠãå®è¡ãããŸããã
- do-whileæã¯ãåŸå€å®åããªã®ã§ãæ¡ä»¶åŒã«é¢ä¿ãªãå¿ ã1åã¯åŠçãå®è¡ãããŸãã
Q3. whileæã®æ¡ä»¶åŒã«è€æ°ã®æ¡ä»¶ãçµã¿åãããããšã¯ã§ããŸããïŒ
A. ã¯ããã§ããŸããè«çæŒç®åïŒ&&, ||, !ïŒã䜿ã£ãŠãè€æ°ã®æ¡ä»¶ãèªç±ã«çµã¿åãããããšãå¯èœã§ãã
äŸïŒwhile (a > 0 && b < 10) { ... }
Q4. ç¡éã«ãŒãã«ãªããªãããã«ããã³ãã¯ïŒ
A. ã«ãŒã倿°ãå¶åŸ¡å€æ°ã®æŽæ°æŒãã«æ³šæããŸãããããŸãããå¿
ãã«ãŒãããæãåºãæ¡ä»¶ããããããæèããŠãbreakæãçµäºæ¡ä»¶ãæ£ããèšå®ããããšã倧åã§ãã
ç¹ã«ååŠè
ã¯ãã倿°ããã¡ããšå€åããŠãããããæèããŠæžããšãã¹ãé²ããŸãã
Q5. ãŠãŒã¶ãŒå ¥åãå€éšããŒã¿ã§whileæã®å¶åŸ¡ã¯ã§ããŸããïŒ
A. ãã¡ããå¯èœã§ããã»ã³ããã«å€ïŒäŸïŒ0ãç¹å®æåïŒããã¡ã€ã«çµç«¯ãªã©ããç¹å®ã®å€ãå ¥åããããçµäºããšãã圢ã§whileæãå¶åŸ¡ããã®ãäžè¬çã§ãã
Q6. ifæãšwhileæã®æ¡ä»¶åŒã®éãã¯ãããŸããïŒ
A. æ¡ä»¶åŒã®æžãæ¹ãè©äŸ¡ã«ãŒã«ã¯åãã§ããã
- ifæã¯ã1åã ããæ¡ä»¶ãå€å®ããŠåŠçãå®è¡ããŸãã
- whileæã¯ãæ¡ä»¶ãæç«ããéããäœåºŠããç¹°ãè¿ãåŠçãå®è¡ããŸãã
Q7. whileæã®äžã§breakãcontinueãå€çšããŠã倧äžå€«ïŒ
A. æ©èœçã«ã¯åé¡ãããŸããããè€éã«ãªãããããšãäœãåå ã§ã«ãŒããæããã®ããããåŠçã®æµãããåããã«ãããªããŸããå¯èªæ§ãæèããã§ããã ãã·ã³ãã«ãªå¶åŸ¡ãå¿ãããŸãããã
Q8. whileæã®å€ã§å®çŸ©ãã倿°ã¯ã«ãŒãå ã§ã䜿ããŸããïŒ
A. ã¯ãã䜿ããŸããwhileæã®å€ã§å®£èšã»åæåãã倿°ã¯ãã«ãŒãå ã§èªç±ã«åç §ã»æŽæ°ãå¯èœã§ãããã ãã倿°ã®ã¹ã³ãŒããå€ã®åæåã¿ã€ãã³ã°ã«æ³šæããŸãããã
ããããçåãäžã€ãã€è§£æ¶ããããšã§ãwhileæã®æŽ»çšåãçå®ã«ã¢ããããŸããæ¬¡ç« ã§ã¯ãèšäºå šäœã®ãŸãšããšä»åŸã®ã¹ãããã玹ä»ããŸãã
11. ãŸãšããšæ¬¡ã®ã¹ããã
Cèšèªã«ãããwhileæã¯ããæ¡ä»¶ãæãç«ã€éã ãç¹°ãè¿ãåŠçãè¡ããããã®ããšãŠãæè»ã§åŒ·åãªå¶åŸ¡æ§æã§ãããã®èšäºãéããŠãwhileæã®åºæ¬çãªæ§æãäœ¿ãæ¹ãããè€æ°æ¡ä»¶ã®å¿çšãdo-whileæãšã®éããç¡éã«ãŒãã®å¶åŸ¡ããããããã¹ãFAQãŸã§ãå¹ åºã解説ããŠããŸããã
whileæã®äž»ãªãã€ã³ãã¯ä»¥äžã®éãã§ãã
- åå€å®åã®ã«ãŒãã§ãããæ¡ä»¶ãæåããåœã®å Žåã¯1床ãåŠçãããªã
- foræãdo-whileæãšã®éããçè§£ãã驿驿ã§äœ¿ãåããããšãéèŠ
- è«çæŒç®åãã»ã³ããã«å€ã掻çšããããšã§ãçŸå®çãªå ¥åç£èŠãè€éãªå¶åŸ¡ãæè»ã«å®è£ å¯èœ
- ç¡éã«ãŒããbreak/continueã«ããè±åºã»ã¹ããããªã©ãç¶æ³ã«å¿ããŠäœ¿ãã
- 倿°ã®æŽæ°å¿ããæ¯èŒæŒç®åã®ãã¹ãªã©ãååŠè ãããããããèœãšãç©Žã«æ³šæããããš
whileæã®äœ¿ãæ¹ããã¹ã¿ãŒããã°ãCèšèªã§ãå®éã«åãããã°ã©ã ããæžãåã倧ããã¢ããããŸãã
ããã°ã©ãã³ã°ååŠè
ã¯ãå®éã«èªåã§ã³ãŒããæžããŠè©Šè¡é¯èª€ããªããããã©ããªå Žé¢ã§whileæã䟿å©ãïŒããäœæããããšãæãéèŠã§ãã
ä»åŸã¯ã以äžã®ãããªã¹ãããã§ã¹ãã«ã¢ãããç®æããŸãããã
- foræãifæãªã©ãä»ã®å¶åŸ¡æ§æãšã®çµã¿åããäŸãå®è·µãã
- é åã»ãã¡ã€ã«å ¥åºåã»é¢æ°ãªã©ãwhileæãšçµã¿åãããæ¬æ Œçãªããã°ã©ã ã«ææŠãã
- ããŸããŸãªãã¿ãŒã³ã®ãšã©ãŒãäŸå€åŠçãå®è£ ããããå®å šã§å ç¢ãªã³ãŒããç®æã
whileæãèªåšã«æ±ããããã«ãªãããšã§ãCèšèªã®å¿çšç¯å²ã¯å€§ããåºãããŸãããã²ãä»ååŠãã å å®¹ãæŽ»ãããŠãããå®è·µçãªããã°ã©ãã³ã°ã«ãã£ã¬ã³ãžããŠã¿ãŠãã ããã