1.代码创作原则
提高健壮性(鲁棒性)
如:提取数字,防止用户输入非规定字符(字母或其余符号),可在scanf部分时操作,如用scanf(%d%d%d,&a,&b,&c);使用户输入的内容运行后只有数字能被匹配。
注意:之前输入的非法字符仍在缓冲区内,因此在下次输入数据时,要将上次缓冲区内的数据清除,可用输入空字符来将残留数据取代。
2.选择结构设计
选择条件判断:
关系条件有:
符合关系则为1(真);不符合关系则为0(假),在值中,非0为真,即为1
逻辑运算有:
与&&:
注:一旦左为0,则右就不参与运算。
或ll :
注:一旦左为1,则右就不参与运算。
非! :
优先级为:非>与>或 ,例:a++ ll b++(a=0,b=0)=0,因为a++是先用后加。
逻辑运算的关系是表达式的关系,不是数值的关系。错例:
改正:
3.语句
3.1 if语句
1形式为:
if(表达式)//判断条件
{
语句
}
如果if判断为真则执行语句,如果为假,则跳过。注意:表达式后不加“;”,加后就将if与执行语句隔开了,表示只做判断,不做语句执行,而期待做执行的语句成为了必然要执行的语句。
2形式为:
if(表达式)
{
语句1
}else
{
语句2
} 如果表达式成立,则运行语句1,否则运行语句2.
3.2 多分支语句 if.....else if语句
if(表达式1)
{
语句1;
}if else(表达式2)
{
语句2;
}if else(表达式3)
{
语句3;
}.......
顺序执行,符合那个表达式就执行那个表达式对应语句
3.3条件运算
表达式1?表达式2:表达式3
表达式1:问题 表达式2:问题成立 表达式3:否则
如:a>b?a:b a是否大于b,大于,则显示a,否则显示b
3.4switch语句
switch(表达式) //整型表达式
case 常量表达式:语句;break;
case 常量表达式:语句;break;
case 常量表达式:语句;break;
.......default:语句
注意:不加break,则可以俩个case用一个语句,如:case1:
case2:语句;break;
这样将会两个case执行一个语句。
注意2:case本质是标签;switch只会匹配一次;default写错不影响使用,因为 其本质为除去标签后的所有标签。
今日重大错误:
if(a=0)并不能起判断作用,if(a==0)才是判断的正确形式