<C>循环 - 2017/11/15
循环 3个循环 <for> <while> <do while>
3个跳转语句 :
1、 <break>
2、 <continue>
3、 <return> (goto 避免使用)
1. 循环
重复执行 -> 循环 单次执行 --> if(true)
// 格式: if(条件) { // 条件满足的时候执行的语句 } while(饿) { 吃; // 循环体 } // 括号{}什么时候可以不要 循环体 如果只有一句可以去掉 // while(条件) 后面要不要分号 表示后面没有循环体 for(语句1;语句2;语句3) { 循环体 } // 语句1 初始化部分 在for循环中只执行一次 // 语句2 写条件 如果条件为真 执行循环体 如果条件为假 跳出循环 // 语句3 自增自减 i++ ++i更快一点
a. 先执行语句1
b. 判断语句2 如果成立 执行循环体 执行语句3 如果条件为假 跳出循环
for循环:
// for 循环 2个分号 里面的语句都可以不写,分号一定要写 for(;;) // 死循环 { 循环体 }
while循环:
// 条件如果一直为真 没办法跳出循环 死循环 while(1) { 循环体 }
当前循环 当条件满足就会执行循环 先判断 在执行 for while
直到型循环 执行循环 直到条件不满足 先执行 再判断 do while
do - while()循环:
// 格式:
do { 循环体; }while(条件); // 这种需要加分号 //先执行语句 再判断 这个循环体至少执行一次
2.循环嵌套
嵌套:在循环里面写另外一个循环
如:
// 矩形 打印直角三角形 等腰三角形 菱形 梯形 六边形
3.跳转:
goto 无条件跳转 滥用 --> 代码可读性差 许多企业和公司都不允许使用
break 跳出最近的一个循环或者switch 一般和if搭配使用
continue 跳过一次循环,进行下一轮循环 和if搭配使用
return 用于函数 跳出这个函数 (放在主函数就退出这个程序)
自己写函数 多重循环
exit 表示直接结束程序
exit(0); // 头文件:stdlib
代码块:
#include <stdio.h> #include <Windows.h> int main() { #if 0 // while()循环 // 打印出:0 ~ 270 int i = 0; while (i <= 270) { printf("%d\n", i); i++; } // 防止闪屏可以加:while(1); 死循环 #elif 0 // for(;;) 循环 for (int i = 0; i < 127; i++) { printf("%c\t", i); } //int i = 0; // 如果多次定义变量不能用同一个变量名 #elif 0 // do while int i = 0; do { printf_s("%d\t", i); // 打印 i++; // 自加加 } while (i <= 127); // 判断 #elif 0 // 循环嵌套(打印三角形) // 第几行 打印出几个* 打印几行 int n = 7; for (int i = 1; i <= 7; i++) // 打印7行 { // 打印i个* 打印换行 for (int j = 0; j < i; j++) // 打印列 { printf_s("*"); // 打印 Sleep(1000); // 延时 } printf_s("\n"); } #elif 0 // 倒三角形 for (int i = 7; i > 0; i--) // 打印行数 { for (int j = 0; j < i; j++) // 打印列数 { printf_s("*"); } printf_s("\n"); } #elif 0 // 菱形 int n = 10, m = 10; for (int i = 1; i <= m; i++) // 打印10行 { // 第i行 打印n-1个空格 打印i个星星 for (int j = 0; j < n - i; j++) // 打印空格 { printf_s(" "); } for (int k = 0; k < 2*i - 1; k++) // 打印*号 { printf_s("*"); } printf_s("\n"); } // 倒三角形 for (int i = m; i >= 1; i--) // 打印10行 { // 第i行 打印n-1个空格 打印i个星星 for (int j = 0; j < n - i; j++) // 打印空格 { printf_s(" "); } for (int k = 0; k < 2 * i - 1; k++) // 打印*号 { printf_s("*"); } printf_s("\n"); } #elif 0 // 空心菱形 int n = 10, m = 10; for (int i = 1; i <= m; i++) // 打印10行 { // 第i行 打印n-1个空格 打印i个星星 for (int j = 0; j < n - i; j++) // 打印空格 { printf_s(" "); } if (i == 5) { for (int k = 0; k < 2 * i - 1; k++) // 打印*号 { printf_s("*"); } } else { printf_s("*"); for (int k = 0; k < 2 * i - 1; k++) // 打印*号 { printf_s(" "); } printf_s("*"); } printf_s("\n"); } // 倒三角形 for (int i = m; i >= 1; i--) // 打印10行 { // 第i行 打印n-1个空格 打印i个星星 for (int j = 0; j < n - i; j++) // 打印空格 { printf_s(" "); } if (i == 5) { for (int k = 0; k < 2 * i - 1; k++) // 打印*号 { printf_s("*"); } } else { printf_s("*"); for (int k = 0; k < 2 * i - 1; k++) // 打印*号 { printf_s(" "); } printf_s("*"); } printf_s("\n"); } #elif 1 // 跳转 int i = 0; for (;;) { printf_s("%d\t", i); if (i++ >= 100) { break; } } printf_s("已跳出循环 i的值事%d", i); #endif getchar(); return 0; }