C语言语句

语句

C语言规定每条语句都以分号结尾。
C语句可以分为以下 5 种:

  1. 控制语句
    1. if() ~ else ~
    2. for() ~
    3. while() ~
    4. do ~ while()
    5. continue
    6. break
    7. switch
    8. goto
    9. return
  2. 函数调用语句
  3. 表达式语句(表达式末尾加个分号)
  4. 空语句(空语句中只含有一个单独的分号)
  5. 复合语句(用花括号括起来的多个语句和声明,又称语句块)

选择语句

if 语句和 switch 语句都需要首先检测一个值,即条件。
条件(condition)是一个表达式。

if语句

if语句有三种形式
第一种基本形式:if

if (条件) 
	语句

条件可能是一个表达式,也可能是一个声明。
如果条件的值为真,则执行其后的语句。
如果条件的值为假,则不执行该语句。

if(value)         //判断变量值
if(value != 0)    //判断表达式的值
if(p != nullptr)  //判断指针是否指向一个有效的对象 

C语言使用整数表示布尔值(真或假,即 1 或 0)。
在C语言中,所有的非零值都被认为是真。
第二种形式为: if-else形式

if(条件) 
      语句 1else 
      语句 2

如果条件的值为真,则执行语句1。
如果条件的值为假,则执行语句2 。
第三种形式为 if-else-if 形式

if(条件 1)
        语句 1else if(条件 2) 
       语句 2else if(条件 3) 
       语句 3......
   else if(条件 m) 
       语句 m;
   else 
       语句 n;

依次判断条件的值,当出现某个值为真时,则执行其对应的语句;然后跳到整个 if 语句之外继续执行程序。
如果所有的条件均为假,则执行语句n。
最后继续执行后续程序。

if语句的嵌套

C语言规定,else 总是与它前面最近的 if 配对。

多分支选择结构与switch语句

多分支选择 switch 语句, 其一般形式为:

switch(条件)
{ 
   case 常量表达式 1: 语句 1;
   case 常量表达式 2: 语句 2;
   ......
   case 常量表达式 n: 语句 n;
   default : 语句 n+1;
}
  1. 计算条件的值。
  2. 逐个与其后的常量表达式值相比较,当表达式的值与某个常量表达式的值相等时,便执行其后的语句。
  3. 然后不再进行判断,继续执行后面所有 case 后的语句。
  4. 如果表达式的值与所有 case 后的常量表达式均不相同时,则执行 default 后的语句。

说明:

  • 每个 case 后面必须是整型或枚举类型的常量表达式。
  • 在同一个 switch 语句中,一个值最多被 case 标签使用一次。
  • case 常量表达是后面必须有一个冒号“:”。
  • 在 case 语句的最后增加 break 语句, 使每次执行之后均可跳出switch语句,可避免输出不应有的结果。
  • 在 case 后,允许有多个语句,可以不用花括号起来。
  • 各 case 和 default 子句的先后顺序可以变动,而不会影响程序执行结果。
  • 在每个 switch 语句后面使用 default 子句,可以检测非法值。
  • default 语句可以省略。

循环结构和循环语句

用while语句构成循环

while 语句的一般形式为:

  while(条件)
     语句块

其中,条件是循环条件,语句块为循环体。
先计算条件的值,当值为真时,执行循环体语句。
当值为假时,不执行循环体语句。
无限循环:

while(1);

用do-while语句构成循环

do-while 语句的一般形式为:

   do
      语句块
   while(条件);

它先执行循环体中的语句,然后再判断条件是否为真, 如果为真则继续循环;如果为假, 则终止循环。
因此,do-while 循环至少要执行一次循环语句。

用for语句构成循环

for 语句的一般形式为:

   for(表达式 1; 表达式 2; 表达式 3) 
      语句块

它的执行过程如下:

  1. 先求解表达式 1,它只在循环开始时执行一次。
  2. 求解表达式 2,若其值为真,则执行 for 语句中指定的内嵌语句,然后执行下面第 3)步;若其值为假(0),则结束循环,转到第 5)步。
  3. 求解表达式 3。
  4. 转回上面第 2)步继续执行。
  5. 循环结束。

for 语句常用的应用形式也是最容易理解的形式如下:

for (循环变量赋初值; 循环条件; 循环变量增量) {语句块}
/*for 语句的惯用法*/
for(i = 0; i < n; i++){}       //从 0 向上加到 n-1
for(i = 1; i <= n; i++){}      //从 1 向上加到 n
for(i = n - 1; i >= 0; i--){}  //从 n-1 向下减到0 
for(i = n; i > 0; i--){}       //从 n 向下减到1
  • 表达式 1 和表达式 3 可以是一个简单表达式也可以是逗号表达式。
int i,j;
for(i=0,j=0; i<n || j<n; i++,j++){} 
  • 表达式 2 一般是关系表达式或逻辑表达式,但也可以是数值表达式或字符表达式,只要其值非零。
  • for 语句括号内的表达式都可省略,但分号不能省略。
for( ; ; ){} 
  • 如果表达式 1 省略,需在 for 语句之前循环变量赋初值。
int i = 0;
for( ; i < n; i++){} 
  • 如果表达式 2 省略,程序死循环。

C99 允许在 for 语句内声明变量,作用域仅在 for 循环内部。

跳转语句

break语句

break 语句负责终止离它最近的 while、do-while、for 或 switch 语句,并从这些语句之后的第一条语句开始继续执行。

  • break 语句只能使用在循环语句和 switch 开关语句中。
  • break 语句对 if-else 的条件语句不起作用。
  • 在多层循环中, 一个 break 语句只向外跳一层。
  • 如果 switch 语句嵌套在了 while 语句中,它可以把程序控制从 switch 语句中转移出来,但是却不能跳出 while循环。

continue语句

continue 语句的作用是跳过循环本中剩余的语句而执行下一次循环。
continue 语句只能用于循环语句。

goto语句

goto 语句的作用是从 goto 语句无条件跳转到同一函数内的另一条语句。

	goto 标识符;
	标识符 语句

C99增加了一条限制:goto 语句不可以用于绕过变长数组的声明。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

往昔的恒纳兰那

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值