C语言学习_4
写在前面
最近由于VScode编码方式的问题,导致代码中一些中文成分出现乱码,故选择整体删除了选择语句学习时练习的代码,可能对于选择语句的解释说明会缺失代码部分,重新写代码我尽量还原学习时的完整度,可能有一些小细节一时回想不起来,包含包含。
循环语句的学习
while循环
while循环非常好理解,也很好用,即在while()的括号内是循环条件,当循环变量满足条件则进入循环,不满足则跳出循环。
while中使用break则跳出整个循环,继续向下执行代码。
while中使用continue时则跳过该段循环,继续判断变量是否满足循环,满足则继续进入循环。即Continue的作用就是跳过本次循环之下的代码。
while循环的代码演示如下:
int main()
{
int ch;
while(ch!=EOF)//ctrl+z就是EOF
{
ch=getchar();
putchar(ch);
}
return 0;
}
do while 循环
do while 循环同while循环类似,不过将条件判断环节放在后循环的最后。
代码如下:
do while循环
int main()
{
int i=1;
do
{
printf("%d\n",i);
i++;
}
while (i<=10);
return 0;
}
for循环
for循环有自己的固定格式通常是for(初始化循环变量;循环条件;循环变量调整)
for循环将循环的三个环节规整在一起,提高了代码的可读性。
for循环中使用break的效果同while与do while 循环一样。但continue的使用就与上述两种循环有所不同了。
for循环中使用continue,同样也会跳过本次循环,但循环变量的调整不会跳过。
因while与do while循环的变量调整都放在循环体内部,故在循环体内部碰到continue会跳过后边的内容,就有可能将循环体变量的调整跳过。
代码演示如下(包含一些特殊用法):
int main()
{
for(;;)//for循环的初始化,调整,判断都可省略,但是for循环判断部分省略,那么判断就恒为真。
printf("哈哈\n");
}
int main()
{
int i = 0;
for (i = 1;i<=100; i++)
{
if(i==5)
break;
printf("%d ",i);
}
//不可在for循环体内改变循环变量,防止失去控制
//建议采用前闭后开的写法
return 0;
}
//for循环
//两个循环变量控制循环
int main()
{
int x,y;
for(x=0,y=0;x<2&&y<5;x++,y++)
{
printf("hehe\n");
}
return 0;
}
利用循环语句写的一些功能
计算阶乘的和:
//计算n的前n项阶乘的和
int main()
{
int n,i;
int S=1,a=0;
printf("请输入:");
scanf("%d",&n);
for(i=1;i<=n;i++)
{
S=S*i;
a+=S;
}
printf("%d\n",a);
return 0;
}
选择语句
if语句
if()括号内填写条件
int mian()
{
int i=0;
scanf("%d",&i);
if (i>5)
{
printf("啧啧\n");
}
return 0;
}
else if语句
int mian()
{
int i=0;
scanf("%d",&i);
if (i>5&&i<10)
{
printf("啧啧\n");
}
else if(i>10)
{
printf("呵呵\n");
}
else
printf("咯咯\n");
return 0;
}
switch语句
switch语句很好用,switch()括号内变量是数字几便对应到与之相对应的case,程序从此进入。
case后加break会使程序跳出选择语句,若case后不加break,则会按顺序输出,直到遇到break,或输出完。
若无与之相对应的数字,则会输出default对应的内容。
int main()
{
int i=0;
scanf("%d",&i);
switch(i)
{
case 1:printf("今天星期一\n");break;
case 2:printf("今天星期二\n");break;
case 3:printf("今天星期三\n");break;
case 4:printf("今天星期四\n");break;
case 5:printf("今天星期五\n");break;
case 6:printf("今天星期六\n");break;
case 7:printf("今天星期天\n");break;
default:printf("输入错误\n");
}
return 0;
}