续 C控制程序语句:分支和跳转

逻辑运算符

逻辑运算符含义
&&
||

expe1和expe2是两个简单的关系表达式(如car>rat或debt==1000),那么:

  • 当且仅当expe1和expe2都为真时,exp1 && exp2才为真;
  • 如果exp1或exp2为真,则exp1||exp2为真;
  • 如果exp1为假,则!expe1为真;如果exp1为真,则!exp1为假

备选拼写:iso646.h

C99标准新增了可代替逻辑运算符的拼写,他们被定义在ios646.h头文件中。如果在程序中含有该头文件,便可用and代替&&,or代替||,not代替!

优先级:运算级别由高到低                 括号 ( !与递增运算符同级)乘法运算符;关系运算符     &&  ||    赋值运算符;例如

a>b&&b>c||b>d相当于((a>b)&&(b>c))||(b>d)。

一个统计单词的程序 

//wordcnt.c--统计字符数、单词、行数
#include <stdio.h>
#include<ctype.h>          //为isspace()函数提供原型
#include <stdbool.h>         //为bool ture false提供定义
#define STOP'|'
int main(void)
{
    char c;    //读入字符
    char prev;    //读入的前一个字符
    long n_chars = 0L; //字符数
    int n_lines = 0;        //行数
    int n_words = 0;    //单词数
    int p_lines = 0;    //不完整的行数
    bool inword = false;   //如果c在单词中,inword等于ture
    printf("enter text to be analyzed(| to terminate):\n");
    prev = '\n';           //用于识别完整的行
    while ((c = getchar()) != STOP)
    {
        n_chars++;     //统计字符
        if (!isspace(c) && !inword)
        {
            inword = true;  //开始一个新的单词
            n_words++; //统计单词
        }
        if (isspace(c) && inword)
            inword = false;    //达到单词的末尾
        prev = c;//保存字符的值

    }
    if (prev != '\n')
        p_lines = 1;
    printf("characters=%1d,words=%d,lines=%d",
        n_chars, n_words, n_lines);
    printf("partial lines=%d\n", p_lines);
    return 0;


}

如果c不是空白字符,且inword 为假,翻译成代码为:if(! isspace(c) &&inword)

!inwordsyu inword==false等价

条件运算符:?:

C提供条件表达式(conditional expression )作为表达 if else语句的一种便捷方式,该表达氏使用?:条件运算符。该运算符分为两部分,需要3个运算对象。带一个对象的运算符为一元运算符,带两个运算对象的为二元运算符,带三个对象的运算符为三元运算符。

x=(y<0)? -y:y;在=和;之间的内容就是条件表达式氏,该语句的意思是“如果y小于0,那么x=-y;否则x=y。

用if else表达为

if(y<0)

    x=-y;

else

    x=y;

条件表达式通用如下

expression1 ?   expression2;expression3

程序跳转:   break continue  goto 

这三种语句都能使程序流从一处跳转至另一处。

continue:3中循环都可以使用continue ,执行该语句时会跳过本次迭代的剩余部分,并开始下一轮的迭代。如果continue语句在嵌套循环内,则只影响包含该语句的内层循环。除了switch语句,其他的循环都可以使用continue语句。continue语句使程序控制跳出循环的剩余部分,对于while或for循环,程序执行到continue语句后开始进入下一轮的迭代。

 

break:程序执行到break语句是,会终止包含他的循环,并继续执行下一个阶段。所有的循环和switch语句都可以使用break语句,他使程序跳出当前循环或switch语句的剩余部分,并继续执行跟在后面的额switch语句。

关键概念:智能

 

 

 

 

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值