标准C语言语法———语句

语句:
操作符 操作数
变量 类型: 操作数
语句的基本规则有:
(i)语句一般以分后‘;’结尾
(ii)一般一行有一条语句
(iii)一般用空行来表示逻辑单元
(iv)一般用缩句对称来表示语句的嵌套关系。(可以用tab键控制缩句格数,但tab键位在不同的系统或者说平台上移动的空格数不一样)
(v)美观上面用空格数显示对称,在操作数与操作符之间。
C语言语句的一般分类有以下几种:
1.顺序执行语句
也就是C语言的一般执行语句。语句之间没有逻辑关系,只有前后(上下)之分,从前(上)往后(下)执行。
2.分支执行语句
在不同的情况下,执行不同的分支
if else
(a)如果条件成立则执行
if(condition){

}
(b)如果条件成立执行一部分内容,否则执行另外一部分内容,必会执行其中之一分支
if(condition){

}else{

}
(c)情况有多种,只能选择其中之一,或者都不选择
if(condition1){

}else if(condition2){

}else if(condition3){

}…
(d)情况有多种,必须选择其中之一
if(condition1){

}else if(condition2){

}else if(condition3){

}…
else{

}
注意:
(i)一定有 if(){ }开头,不能省略;
(ii)可以有任意多个else if( ){ };
(iii)最多有一个或者零个else();
(iv)有多个条件,判断顺讯为从上往下依次判断条件,如果条件为真则执行该分支
(v)如果分支语句只有一条语句时,可以省略大括号{ }但是不建议省略
(vi)if(condition);打了分号后,表示执行的分支语句为空==>if(condition){;}大括号内的分号表示语句结束。

switch:
语法表示:
switch(控制表达式){
case 常量表达式:
语句;
case 常量表达式:
语句;
break;//结束语句,跳出switch。
default:语句;
}
控制表达式:表达式的结果必须是整数类型(字符类型可以隐式转换成整数)
常量表达式:结果是确定的值,不能是变量 但可以是宏定义;case后的值不能重复,case语句的先后顺序可以调换 分后后面的语句可以用{ }大括号也可以省略。
case:只是作为switch语句的入口
控制表达式的结果和case常量表达式的结果进行相等=判断,如果控制表达式的结果等于case常量表达式的结果,则跳转到该case执行 如果想结束(跳出)switch语句则需要在后面加break关键字。
default:相当于上面所说if分支语句中的else,当所有的case不满足时才进入到default default可以放在任意位置,如果进入default也是顺序执行完所有case语句后再执行default语句,但一般来说把default语句放在最后面,且放在末尾时可以省略break。
3.条件循环语句
程序中一直做相同的或者相似的操作
for循环
for(初始化表达式;循环体条件表达式;改变循环条件表达式){
//循环执行的语句
}
初始化表达式:给循环变量赋初始值,只执行一次
循环条件表达式:只有当该表达式的结果为真时,才会执行循环体的内容;当表达式结果为假时,循环结束;当该表达式省略时,表示一直为真,也就是一直执行。
改变循环条件表达式:让循环趋于结束。
for(expr1;expr2;expr3)
expr1,expr2,expr3 任何一个表达式都可有可无 但不能省略分号 ;;
for(;expr2;expr3)
for(expr1;expr2;)
for(expr1;;expr3)
注意:
(i) for(;;) 括号中分号不能少 不管有没有语句
(ii) 如果有多个变量时可以用逗号隔开for for(i=1,j=0;i<10&&j<10;i++,j++){}
(iii) for(;;){} 无限循环
(iv) for(;) 省略{} 表示只有一条语句是循环体的语句
(v) for(x;x;x); 表示循环体语句为空
for(x;x;x);{
//只执行一次 当循环执行完成之后 不属性循环
}
(vi) for(int i=0;;)形式 在初始化循环变量时 可以直接定义变量
但需要在 c99 gnu99模式下才被允许
while循环
while(condition){
//当条件condition为真时执行循环体
}
for和while循环互换 (结合理解)
for(expr1;expr2;expr3){
expr4;
}

expr1;
while(expr2){
expr4;
expr3;
}
for(;condition;){ } ==> while(condition){ }
for循环和while循环都是先进行条件判断,如果条件为真则执行。
do…while循环
语法规则:
do{
//循环体内容
}while(condition);//分号不能省略
与for和while循环不同的是,do while循环是先执行循环体,然后再进行条件判断,也就是循环体内容至少被执行一次。

无限循环的情况:
for(;;){}==for(;1;){}==while(1){}==do{}while(1);
循环嵌套:也就是多层循环:需要注意的是break和continue的使用
break
每次只能结束一层循环
continue
每次结束的是与continue结合最紧密的循环,进入下次循环
for1{
for2{
break;//for2
continue;//for2
}
break;//for1
continue;//for1
for3{
break;//for3
continue;//for3
}
break;//for1
continue;//for1
}
4.无条件跳转语句
go to
例:
print://标签
go to print;//跳转到指定标签执行

注意:
(i)使用goto语句只能转移到到同一函数内,而不能从一个函数里转移到另外一个函数里。
(ii)使用goto语句在同一函数内进行转移时,转移的起点应是函数内一段小功能的结束处,goto的目的label处应是函数内另外一段小功能的开始处。
(iii)不能从一段复杂的执行状态中的位置goto到另外一个位置,比如,从多重嵌套的循环判断中跳出去就是不允许的。
(iv)应该避免向两个方向跳转。这样最容易导致“面条代码”。

  • 4
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值