一. 制作思维导图
二.语法认识
1.if—else
if(条件1) { 语句1; } else { 语句2; }
注意:1.if表达式后面只管一句话,可以省略掉{};如果if表达式后面需要管多句话,则必须加{}
2.else后面不要加分号,else后面不要加小括号
2.switch
switch(整形表达式) { case 常量表达式1: 语句1;break; case 常量表达式2: 语句2;break; … case 常量表达式n: 语句n;break; default: 语句n+1; }
注意:1.case后面必须跟常量,必须要常量
2.使用switch-case中不应忽视的是在每个case后处理完后写上break;语句
3.for
for(表达式1; 表达式2; 表达式3) { 循环体语句 }
注意:1.for循环的代码不仅可以写一句,也可以写多句
2.for循环的三个部分都可以省略。第一部分省略表示不初始化;第二部分省略表示不判断,默认值为true;第三部分省略表示省略后什么也不执行。
4.while
while(循环条件) { 循环体语句 }
注意:for与while比较
for循环
循环控制变量的初始化和修改都放在语句头部分,书写形式较简洁,且适用于循环次数已知的情况。在循环语句中定义一个局部变量,循环结束后,局部变量就被释放了。
while循环
循环控制变量的初始化一般放在while语句之前,循环控制变量的修改一般放在循环体中,形式上不如for语句简洁,但它比较适用于循环次数不易预知的情况(用某一条件控制循环)。
两种形式各有优点,但它们是等价的,可以相互转换。
5.do-while
do { 循环体语句 }while(循环条件);
注意:while和do-while的区别
相同点:
1.是循环结构,使用“while(循环条件)”表示循环条件,使用大括号将循环操作括起来。
不同点:
1.语法不同。与while循环相比,do-while循环将while关键字和循环条件放在后面,而且前面多了一个do关键字,后面多了一个分号。
2.执行次序不同。While循环先判断,再执行;do-while循环先执行,再判断。
3.一开始循环条件就不满足的条件下,while循环一次都不会执行,do-while循环则不管在什么情况下都至少执行一遍。
6.break
switch(整形表达式) { case 常量表达式1: 语句1;break; … case 常量表达式n: 语句n;break; default: 语句n+1; } for(表达式1; 表达式2; 表达式3) { 语句1; continue; 语句2; }
注意:1.每个 case都写 break,其实没有这样的必要
2.不能忘记了 case后面要写一个 break,否则其结果是多个 case不能互斥,按顺序执行。
三.pta分数截图
四. pta代码分析
#include <stdio.h> int main(){ int n,i; double sum=0; scanf("%d",&n); for(i=1;i<=n;i++){ sum += 1.0/i; } printf("sum = %.6f",sum); return 0; }
思路:
第一步:定义变量sum为总和,i为循环语句中的次数;
第二步:根据题意锁定公式s=s+i;
第三步:i++循环,输出总和sum。
注意:
1:对于n,i,sum的类型定义
2:输出的值保留的位数
收获:对于for循环的简单应用
#include <stdio.h> int main() { int n=0, a=0; scanf("%d", &n); if (n < 0) { a = -1; } else if (n > 0) { a = 1; } else { a = 0; } printf("sign(%d) = %d", n, a); return 0; }
思路:
第一步:确定题目的范围数量
第二步:选择最优的解决方案
注意:如果题目不止一个范围可以用else if再继续写条件,直到满足题意
收获:简单掌握if语句的用法
#include <stdio.h> int main() { int N,i; int flag=-1; double s=0; scanf("%d",&N); for (i=1;i<=N;i++) { flag=-flag; s=s+i/(2.0*i-1.0)*flag; } printf("%.3lf",s); return 0; }
思路:
1.定义变量N,i,flag=1,浮点型变量s;
2.找出通项公式s=s+i/(2*i-1)乘以(-1)的n次幂;
3.(-1)的n次幂不太会就相应换成变量flag,让fiag=-flag循环与公式相乘——把公式放入循环语句中须在(i=1;i<=N;i++)的条件下。
注意:
遇到的问题:不知道怎样才能输入‘+’ ‘—’连续的循环式子?
解决方法:网上搜索如何在定义一个变量flag,让flag=-flag放在循环语句中就可以实现。
收获:对for循环语句有基本了解