If的常见问题:
1> 空语句的问题
If (3 > 2);
等价于 if (3 > 2)
; //这是一个空的语句
2>
If( 表达式)
A;
else
B;
是正确的.
if ( 表达式1);
A;
else
B;
是错误的! 因为else 不能作为一个独立的语句执行.而if 是可以作为单独的语句执行的.
3>.
if(表达式1)
A;
else if (表达式2)
B;
else if (表达式3)
c;
else
d;
即使表达式 1 与表达式2 成立,都只会执行表达式A的内容.因为那个是 否则 如果.
4>
If(表达式1)
A;
else if (表达式2)
B;
else if(表达式3)
C;
//这样写语句固然没有错误,但是逻辑上是容易犯错的.
5>
- If(表达式1)
- A;
- else if(表达式2)
- B;
- else if(表达式3)
- C;
- else (表达式4)
- B;
这样写是报错的!解决的方法是 把 else 改成else if 或者是 把else(表达式) //去掉 (表达式)
6>
- If(表达式1)
- A;
- else if (表达式2)
- B;
- else if (表达式3)
- C;
- else (表达式4);
- B;
这样写语法不会出错,但逻辑上是会出错的.因为它等价于
else
(表达式4);
D ;//这里再有一个输出语句.
循环的定义
某些代码重复执行的一个过程.
- 作业:
- /*
- 求1到100之间的奇数之和
- 求1到100之间的奇数的个数
- 求1到100之间的奇数的平均值
- 求1到100之间的奇数之和, 再求1到100之间的偶数之和
- */
- #include <stdio.h>
- int main(void)
- {
- int i = 1 ;
- int sum = 0 ;
- int count = 0 ; //个数
- double age = 0.0; //平均值
- int ever = 0 ; //偶数之和!
- int j = 0;
- for(i = 1; i<100; i+=2)
- {
- sum = i + sum;
- count ++ ;
- }
- age = sum / 100 ;
- printf("奇数之和:%d\n奇数的个数:%d\n平均值为:%lf\n",sum,count,age);
- /*
- 求偶数之和
- */
- for(j = 0;j<100;j++)
- {
- if(j % 2 == 0)
- {
- ever+= j;
- }
- }
- printf("偶数之和为:%d\n",ever);
- return 0;
- }
- /*
- 今天得学习总结: 比以前用心,但是还不够给力.
- */