2020年1月21日C语言学习
一、continue
跳过本次循环,继续执行下次循环
例题:循环输入五个玩家的年龄,统计年龄为负的录入次数(录入正确,则跳过;错误则计数器加一)
int age;
int i;
int count = 0;//计数器初值为0
for(i = 0; i < 5; i++)
{
printf("请输入玩家年龄:");
scanf("%d",&age);
if(age >= 0)//正确
{
continue;//跳过正确的情况
}
else
{
count++;
}
}
printf("输入错误%d次!\n",count);
例题:求1-100之间的偶数和
#include <stdio.h>
int main()
{
int i;
int sum = 0;
for(i = 0; i < 100; i++)//i+=2
{
if(i % 2 != 0)//奇数情况
continue;//跳过奇数
sum += i;
}
printf("输入偶数和:%d",sum);
return 0;
}
二、continue与break对比
break可用于switch结构和循环结构中;continue只能用于循环结构中
break终止某个循环,程序跳转到循环块外的下一条语句;continue跳出本次循环,进入下一次循环
三、循环结构总结
相同点:多次重复执行一个或多个任务是考虑使用循环来解决问题
循环次数确定的情况下,通常选用for循环;
循环次数不确定的情况下,通常选用while和do-while循环
四、嵌套循环之打印星号图形
#include <stdio.h>
void main()
{
int i,j;
for (i = 0; i < 4; i++)//外层循环控制行(行数、换行)
{
//上三角空格行号与列号的关系
for(j = 0; j <= 2 - i; j++)
{
printf(" ");
}
//内层循环控制列(列数、列的符号)
for(j = 0; j <= i * 2; j++)
{
//挖空原理,判断什么时候打印星号,什么时候打印空格
// if(i ==0 || i == 3 || j ==0 || j ==2 * i)
// printf("*");
//else
// printf(" ");
printf("*"); //'A'+i...'A'+j
}
printf("\n");
}
for(i = 4; i < 7; i++)
{
//上三角空格行号与列号的关系
for(j = 0; j <= i - 4; j++)
{
printf(" ");
}
//内层循环控制列(列数、列的符号)
for(j = 0; j <= 12 - 2 * i; j++)
{
printf("*");
}
printf("\n");
}
}
#include <stdio.h>
void main()
{
int i,j;
for(i = 0;i <= 4;i++)
{
for(j = 0; j <= 7;j++)
{
if(i == 0 || i == 4 || j == 0 || j == 7)
printf("*");
else
printf(" ");
}
printf("\n");
}
}
#include <stdio.h>
void main()
{
int i,j;
for (i = 0; i < 3; i++)//外层循环控制行(行数、换行)
{
for(j = 0; j <= 2 - i; j++)//上三角空格行号与列号的关系
{
printf(" ");
}
for(j = 0; j <= i * 2; j++)//内层循环控制列(列数、列的符号)
{
//挖空原理,判断什么时候打印星号,什么时候打印空格
if (i == 0)
{
printf(" ");
}
else
{
if (i == 1 || j == 0 || j == 2 * i)
printf("*");
else
printf(" ");
}
}
printf("\n");
}
for(i = 3; i < 10; i++)
{
for(j = 0; j <= 6; j++)
{
if(j == 0 || j ==6)
printf("*");
else
printf(" ");
}
printf("\n");
}
for(i = 9; i < 12; i++)
{
for(j = 0; j <= i - 9; j++)//上三角空格行号与列号的关系
{
printf(" ");
}
for(j = 0; j <= 22 - 2 * i; j++)//内层循环控制列(列数、列的符号)
{
if(i == 11){
printf(" ");
} else{
if(i == 10 || j == 0 || j == 22 - 2 * i)
printf("*");
else
printf(" ");
}
}
printf("\n");
}
}
#include <stdio.h>
void main()
{
int i,j;
for (i = 0; i < 3; i++)//外层循环控制行(行数、换行)
{
for(j = 0; j <= 1 - i; j++)//上三角空格行号与列号的关系
{
printf(" ");
}
for(j = 0; j <= i * 2; j++)//内层循环控制列(列数、列的符号)
{
printf("*");
}
printf("\n");
}
for(i = 3; i < 10; i++)
{
for(j = 0; j <= 4; j++)
{
if(j == 2)
printf("*");
else
printf(" ");
}
printf("\n");
}
}
来源:CSDN
作者:初心如荒岛
链接:https://blog.csdn.net/qq_42532008/article/details/104061848