C++学习(十二)(C语言部分)之 循环
上期回顾:
分支
if else switch 三目运算符
格式:
if(条件)
{语句1;}
else
{语句2;}
switch (变量)
{
default:
break;
case 常量1:语句1 ;break;
case 常量2:语句2 ;break;
...
}
条件?语句1:语句2
三大循环 四大跳转语句
1、循环
while for do while
//最简单的 while
if(饿) 吃;
while(饿) 吃; //循环 如果饿就吃 吃到不饿为止
1.1 while循环
格式:
while(条件) // 条件可以使数字 0为假 非零为真 先判断条件 条件满足执行语句
{
语句; //循环体
} //一直执行循环体 直到条件不满足为止
while(1) 条件恒成立 一直执行------>死循环 可以用来替换getchar 防止闪屏
举个栗子~
再倒着打印出10-1 只需改一下条件就可以
1.2、for循环 (用的比较多)
格式:
for(初始化语句1;条件2;自增/自减3)
{
循环体4;
}
1刚刚进入for的时候 执行一次
判断条件2 条件为真的时候 执行4 为假结束循环
执行4之后 执行3 然后判断条件
1243 243 243...
for(;;) //死循环 条件默认为真
{}
举个栗子~
1.3、do while
格式:
do
{
循环体;
}while(条件);
//先执行一次循环体 然后判断条件 条件为真 继续循环 为假 退出循环
for和while可以相互转换 先判断条件 再执行循环体 循环体可能一次都不执行
do while 先执行再判断 循环体至少会执行一次
举个栗子~
2、循环嵌套
for循环是最简单的
循环里面还有循环 一般只有两次
99乘法表
1*1=1
2*2=4
i*j=(i*j)
printf(“%d%d=%d”,i,j,i*j);
举个栗子~ 99乘法表
但是打印出的结果并不美观 我们可以改一下
这样就看起来好看多了
这样是不是就更好看了呢
也可以用while改写
四大跳转
goto 无条件跳转语句 可以从任意地方跳转到任意地方 (很多公司不允许使用) 代码紊乱 维护困难
break 跳出最近的循环和switch
while(1)
{
if(条件) (break;)//在循环中和if搭配使用 提前跳出循环
}
continue 跳过本轮循环 进入下一次循环
return 用于跳出该函数 (如果跳出main函数的时候 程序结束)
exit(0) //stdlib.h里面
在任意地方使用 都是跳出程序(程序结束)
主函数
int main()
(
return 0;//表示程序正确结束 其他都表示非正常结束
)
对continue举个栗子~
当我们改写为while语句时
他会变成死循环 一直打印123 对continue后面的语句并没有执行
要想程序可以正常运行 将++ i放到continue前面就可以了
下年举一个打印图形的栗子
用 * 打印出五角星
练习 测试的代码如下:
1 /* 2 上期回顾: 3 分支 4 if else switch 三目运算符 5 6 格式: 7 if(条件) 8 {语句1;} 9 else 10 {语句2;} 11 12 switch (变量) 13 { 14 default: 15 break; 16 case 常量1:语句1 ;break; 17 case 常量2:语句2 ;break; 18 ... 19 } 20 21 条件?语句1:语句2 22 23 三大循环 四大跳转语句 24 1、循环 25 while for do while 26 27 //最简单的 while 28 if(饿) 吃; 29 while(饿) 吃; //循环 如果饿就吃 吃到不饿为止 30 31 格式: 32 while(条件) // 条件可以使数字 0为假 非零为真 先判断条件 条件满足执行语句 33 { 34 语句; //循环体 35 } //一直执行循环体 直到条件不满足为止 36 while(1) 条件恒成立 一直执行------>死循环 37 38 2、for循环 (用的比较多) 39 格式: 40 for(初始化语句1;条件2;自增/自减3) 41 { 42 循环体4; 43 } 44 1刚刚进入for的时候 执行一次 45 判断条件2 条件为真的时候 执行4 为假结束循环 46 执行4之后 执行3 然后判断条件 47 1243 243 243... 48 49 for(;;) //死循环 条件默认为真 50 {} 51 52 3、do while 53 格式: 54 do 55 { 56 循环体; 57 }while(条件); 58 //先执行一次循环体 然后判断条件 条件为真 继续循环 为假 退出循环 59 60 61 for和while可以相互转换 先判断条件 再执行循环体 循环体可能一次都不执行 62 do while 先执行再判断 循环体至少会执行一次 63 64 65 66 循环嵌套 67 for循环是最简单的 68 循环里面还有循环 一般只有两次 69 99乘法表 70 1*1=1 71 2*2=4 72 i*j=(i*j) 73 printf(“%d%d=%d”,i,j,i*j); 74 75 76 四大跳转 77 goto 无条件跳转语句 可以从任意地方跳转到任意地方 (很多公司不允许使用) 代码紊乱 维护困难 78 break 跳出最近的循环和switch 79 while(1) 80 { 81 if(条件) (break;)//在循环中和if搭配使用 提前跳出循环 82 } 83 continue 跳过本轮循环 进入下一次循环 84 return 用于跳出该函数 (如果跳出main函数的时候 程序结束) 85 86 exit(0) //stdlib.h里面 87 在任意地方使用 都是跳出程序(程序结束) 88 89 主函数 90 int main() 91 ( 92 return 0;//表示程序正确结束 其他都表示非正常结束 93 ) 94 95 96 */ 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 #include<stdio.h> 119 #include<stdlib.h> 120 int main() 121 { 122 123 /* 124 //举个栗子~ 打印出0-9 125 int i = 10; 126 while (i>0) 127 { 128 printf("%d\t",i); // \t 是制表符 相当于四个空格 129 i--; 130 } 131 */ 132 133 /* 134 //举个栗子~ 打印0-9 135 for (int i = 1; i < 10; i++) 136 { 137 printf("%d\t",i); 138 } 139 140 或者 141 for(int i=1;j<10;printf("%d\t",i),++i); //不推荐 142 143 */ 144 145 /* 146 //举个栗子~ 147 148 int j = 0; 149 do 150 { 151 printf("%d\t",j); 152 ++j; 153 } while (j < 10); 154 */ 155 156 /* 157 //举个栗子~ 99乘法表 158 159 for (int i = 1; i < 10; ++i) 160 { 161 for (int j = 1; j <= i; ++j)//内圈循环一轮后 外圈循环一次 162 { 163 printf("%d*%d=%d\t",j,i,i*j);//总共能执行81次 164 } 165 printf("\n"); 166 } 167 */ 168 169 /* 170 //举个栗子~ 用while改写99乘法表 171 int i = 1, j; 172 while (i<10) 173 { 174 j = 1;//while 循环开始前 j初始化 175 while (j <= i) 176 { 177 printf("%d*%d=%d\t",j,i,i*j); 178 ++j; 179 } 180 printf("\n"); 181 ++i; 182 } 183 */ 184 185 /* 186 //举个栗子~ 打印10次 12345 187 for (int i = 0; i < 10; ++i) 188 { 189 printf("1"); 190 printf("2"); 191 printf("3"); 192 if (i == 5) continue; 193 printf("4"); 194 printf("5\n"); 195 } 196 197 //改写为while 198 int i = 0;//给循环设置初始条件 199 while(i<10) 200 { 201 printf("1"); 202 printf("2"); 203 printf("3");++i; 204 if (i == 5) continue; 205 printf("4"); 206 printf("5\n"); 207 208 } 209 */ 210 211 212 213 //栗子~ 打印五角星 214 /* 215 * 216 *** 217 *************** 218 ********* 219 *** *** 220 * * 221 222 */ 223 224 for (int i = 0; i <= 3; ++i)//打印三行 225 { 226 //先打印7-i个空格 227 for (int j = 0; j < 7 - i; ++j) printf(" "); 228 //然后打印2*i-1个* 229 for (int j = 0; j < 2 * i - 1; ++j) printf("*"); 230 printf("\n"); 231 } 232 for (int i = 1; i <= 3; ++i)//打印三行 233 { 234 //先打印i-1个空格 235 for (int j = 0; j <i-1; ++j) printf(" "); 236 //打印 1 4-2*i个* 237 for (int j = 0; j < 15-2*i; ++j) printf("*"); 238 printf("\n"); 239 } 240 for (int i = 1; i <= 3; ++i)//打印三行 241 { 242 //先打印空格 243 for (int j = 0; j < 4 - i; ++j) printf(" "); 244 for (int j = 0; j < 4 - i; ++j) printf("*"); 245 246 //空格个数 1 5 9 4*i-3 247 for (int j = 0; j < 4 * i - 3; ++j) printf(" "); 248 for (int j = 0; j < 4 - i; ++j) printf("*"); 249 printf("\n"); 250 } 251 system("pause"); 252 return 0;//表示跳出主函数 253 }
2018-06-18 21:29:56