详解C语言语句

空语句

空语句本身并不执行任何任务,但有时还是有用的。它所适用的场合就是语法要求出现一条完整的语句,但并不要求它执行任何任务。

表达式语句

C语言并不存在专门的赋值语句,那它是如何进行赋值的?答案是赋值就是一种操作,就像加减法一样,所以赋值就在表达式内进行。
你只要在表达式后面加上一个分好,就可以把表达式转化为语句,所以下面两个语句是表达式语句而不是赋值语句。

x = y + 3;
ch = getchar();

if语句

if语句的语法如下

if(expression)
  statement;    
else 
  statement;

如果expression的值为真,纳米就执行第一个statement,佛则就跳过它。如果存在else语句,它后面的statement只有当expression的值为假的时候执行。

在C语言中的if语句与其它语言中的if语句,只存在一个差别C并不具备布尔类型,而是用整数来替代,这样expression看可以是任何能够产生整型结果的表达式——零标识,非零表示
注意:else子句从属于最靠近它的不完整if语句

while语句

while(expression)
  statement;

break语句和continue语句

在while循环语句中可以使用break和continue语句,其中break语句用于永久终止循环,在执行完break语句后,执行流执行的下一条语句就是循环正常终止后应该执行的语句。
continue语句用于永久终止当前循环,在执行完continue语句后,执行流接下来就是重新测试表达式的值,决定是否据需执行循环。
这两条语句的任何一条如果出现于嵌套的内部循环,它只对最内层的循环起作用,你无法使用break和continue语句对最外层的语句起作用。

for语句

for(expression1;expression2;expression3)
  statement;

相当于while语句的下列表现形式

 experssion1
while(expression2)
{
  statement;
  expression3;
}

其中statement称为循环体,expression1称为初始化部分,expression2称为条件部分,expression3称为调整部分,它在循环体执行之后,条件部分执行之前执行,三个部分都是可选部分,三个都省略,表示条件适中为真。

for语句和while语句执行过程中出现continue语句的区别:
1.在for语句中,continue语句直接跳过循环体的剩余部分,直接回到调整部分。
2.在while语句中,调整部分属于循环体的一部分,所以continue将会把它也跳过。

do语句

do
  statement;
while(expression);

do语句和很像while语句,再是它的测试条件在循环体执行一次之后才进行执行,所以这种循环体至少被执行一次。

switch语句

switch(expression)
{
    statement_list;
}

贯穿于语句列表之间的是一个或多个case标签,形似如下:

case constant-expression:

每个case标签必须具有一个唯一的值,常量表达式是指在编译期间进行求值的表达式,它不能是任何变量。这里的case标签并不是把语句列表划分成几个部分,它们只是确定语句列表的进入点。

switch语句中的break语句

如果在switch语句中使用break语句,执行流会立即跳到语句列表的末尾,break语句的实际效果是把语句列表划分成不同的部分。
continue在switch语句种不起任何作用。

default语句

default:

如果表达式的值与所有的case标签都不匹配,可以在任何一个可以出现case语句的位置添加一个default语句

goto 语句

goto  语句标签

要使用goto 语句你必须在你希望跳转的语句前面加上语句标签,语句标签就是标识符后面加个冒号(:)

goto 语句很适合一种情况——跳出多层嵌套循环,由于break语句只能影响它的最内层循环,要想立即从深层嵌套的循环中退出,使用goto语句效果和好

    while(conditional1){
                 while(conditional1){
                           while(conditional3){
                                    if(some disater)
                                            goto quit;
                                    }
                }
}
quit: ;

要想在这种情况下避免使用副作用颇多的goto语句,有两种解决方式:

-第一个方案是当你希望退出所有循环时设置一个标志状态,但这个标志状态在每个循环中都要测试

enum
{
    EXIT,
    OK
} status;
while(status == ok && conditionl1)
{
    while(status == ok && condition2)
    {
      while(condition3)
      {
          if(some disater)
            {
                status = EXIT;
                break;
            }
      }
    }
}

-另外一个方案是把所有的循环放到一个单独的桉树里面,当"灾难"降临到最内层循环时,可以使用return语句离开该函数。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,684评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,143评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,214评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,788评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,796评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,665评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,027评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,679评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 41,346评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,664评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,766评论 1 331
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,412评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,015评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,974评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,203评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,073评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,501评论 2 343

推荐阅读更多精彩内容