1.使用在线帮助手册
点中所需查询的代码,按F1建或Fn键加F1
2.for循环
分支语句:if 、switch。从上往下执行,只执行一次。
循环:for、while、do while。多次执行,0次及以上。
for(表达式1;表达式2;表达式3)
{
语句块1
}
表达式1:初始化,最早被执行(在执行for循环里最早),有且执行一次
表达式2:判断表达式,如果为真,则循环继续;为假循环结束。每次进入循环体
表达式3:步进,修改循环所用的值,执行完语句块1之后执行,每次执行
int main()//把循环的每一个步骤都打印出来
{
int i;
for(i=0,printf("#1:%d\n",i);
printf("#2:%d\n",i),i<3;
++i,printf("#3:%d\n",i))
{
printf("**1:%d\n",i);
}
return 0;
}
结果:
3.while循环
while(表达式1)
{
语句块1
}
表达式1为真则循环继续,为假循环结束
或
do
{
语句块1
}while(表达式1);
表达式1为真则循环继续,为假循环结束,先执行语句块1,再进行判断
for和while两者相互之间可以完全替代,
for因为把三个条件写在一起,不容易出错和遗漏,使用使用for循环较多。
4.do while循环
do
{
语句块1
}while(表达式1);
表达式1为真则循环继续,为假循环结束,先执行语句块1,再进行判断
区别:
int main()
{
int sum = 0;//do while
int i = 1;
do
{
sum += i;
i++;
}while(i <= 0);
printf("%d\n",sum);
sum = 0;//while
i = 1;
while(i <= 0)
{
sum += i;
i++;
}
printf("%d\n",sum);
return 0;
}
结果:
总结:
当while循环直接为假的时候,do while会执行一次,while不执行。其他情况下三个循环都一样。
5.printf使用规则
printf格式化符,格式化即为输出,专业术语
%d:格式化十进制整数
%c:格式化字符
%s:格式化字符串
%f:格式化float和double
%lf(基本上不用):格式化double,等同于%f
%x:格式化十六进制整数,相关的还有%X,%08x,%08X。%X大写X及如果输出结果有字母将其变成大写。%08x及输出结果补齐八位数字。(考试经常出现)
int main()
{
printf("%d,%c\n",65,65);//'A'的编码为65
printf("%s\n","hello");
float a=12.5f;
double b=23.4;
printf("%f,%f\n",a,b);
printf("%lf,%lf\n",a,b);
printf("%x\n",20);//1 0100->14
printf("%x,%X\n",1234,1234);
printf("%08x,%08X\n",1234,1234);
return 0;
}
6.scanf使用规则
scanf:
%d,%c,%s同printf
注意事项:
1.格式化符和类型一定要匹配
%f:格式化float
%lf:格式化double
2.scanf后面跟地址列表,加&
3.不要加\n等字符
int main()
{
float a;
double b;
scanf("%f",&a);
printf("%f\n",a);
scanf("%f",&b);//error,应该为%lf
printf("%f\n",b);
scanf("%lf",&b);
printf("%f\n",b);//输出%lf和%f一样
return 0;
}
7.break和continue
break:跳出一层循环
//1+2+3...+x<1000
//1+2+3...+x+(x+1)>1000
//求x的值
int main()
{
int sum=0;
int i=1;
for(;;i++)
{
sum +=i;
if(sum >1000)
break;//跳出一层循环,即一层for
}
printf("%d,%d\n",sum,i-1);//i == x+1
return 0;
}
continue:提前结束本次(趟)循环,直接进入下一次(趟)循环,不常用
//输出100~200之间能被3和5整除的数字
int main()
{
for(int i=100;i<200;i++)
{
if(i%3==0 && i%5==0)
{
printf("%d\n",i);
}
}
printf("\n\n");
for(int i=100;i<200;i++)
{
if(i%15 != 0)
{
continue;//提前结束本次循环
}
printf("%d\n",i);
}
return 0;
}