-
预科第八天
今天老师将循环讲完了,条件流程switch-case补充到了昨天的笔记中,已经更新.老师顺便将数组开了个头,讲了一点基础。循环这一节单个循环逻辑拿出来可以理解,但是让自己写就写不出来。
③for循环
for(表达式1;表达式2;表达式3)
{}
规则:先计算表达式1,表达式1有且只执行一次,再去判断条件(表达式2)是否成立,如果成立就去运行{}里面的代码;
当{}里面的所有代码都执行完成之后再去执行表达式3,执行完表达式3之后再去判断条件,直到不成立,就执行{}下面的代码。
#incude<stdio.h>
int main()
{
//计算1~100的和
int i=1,sum=0;
for (;i<=100;)
{
sum=sum+i;
i++;
}
printf("i=%d\nsum=%d\n",i,sum);
return 0;
}
for循环注意点:
1)表达式1和表达式3可以省略,如果说表达式2也省略,就相当于一个死循环
2)2个分号不可以省略
死循环有哪些写法?
1)for(;;)
{}
2)while(1)
{}
- do
{
}while(1);
-
while和for后面加不加分号?
1)正常写法:while和for不加,do...while加
2)特殊用法:在{}里面如果没有代码可以执行,while(条件);
for(表达式1;表达式2;表达式3);do...while还是要加分号 -
break和continue使用情况:
1)break:switch-case,循环
2)continue:循环
#include<stdio.h>
int main()
{
/*
break
从键盘输入一串字符,计算有效字符的个数;
有效字符指的是空格前面的字符
zhang san\n 5
hello\n 5
*/
/*
输入缓存流:zhang san\n
用while(判断字符是'\n'),
如果拿出来的字符是空格,就跳出去,不进行计数
不是空格,就计数
*/
char ch;
int count=0;
while((ch=getchar())!='\n')//判断字符是否输入结束的标志
{
if(ch==' ')
{
break;
}
count++;
}
printf("count=%d\n",count);
return 0;
}
break注意点:
1)break是跳出switch语句和循环语句的,当执行break语句的时候,break下面的代码将不会被执行,继而执行循环或switch下面的语句
2)break是跳出最近的循环或者switch
#include<stdio.h>
int main()
{
//1~100打印所有的数据,跳过个位为3的数
int i=0;
while (i<=99)
{
i++;
if(i%10==3)
{
continue;
}
printf("%d ",i);
}
return 0;
}
continue的注意点:
1)continue是跳出循环当中的一次循环,不会跳出整个循环,
当执行continue语句时,continue下面的代码不会被执行,继而再去判断下一次条件是否成立
2)continue是跳出最近的循环当中的一次循环
注意在与for连用的时候:碰到continue语句,continue下面的语句不会被执行,但是表达式3还是会被执行
for(表达式1;表达式2;表达式3)
{
if()
{
continue;
}
printf("======\n");
}
printf不一定每次都能正确运行成功,解决方法:
在printf后加\n,\n的作用是强制刷新输出缓存流
在编程当中实在发现不了解决题目的答案,往往标志位flag能解决一切小问题,切记标志位不要太多
数组就是存储多个同种类型的变量集合
数组的定义
int array[7];
数组的初始化,数组是从0位置开始
1.int array1[4]={1,2,3,4};
2.如果后面的值个数不足,用0补全
int array2[4]={1,2};//{1,2,0,0}
3.int array3['a']={0};
4.int array4[4]={[3]=3,[2]=2};
5.如果数组大小没有指定,那么个数根据后面的数据决定
int array5[]={1,2,3,4};
网友评论