文档章节

C Primer Plus 第7章 C控制语句:分支和跳转 7.3获得逻辑性

idreamo
 idreamo
发布于 2016/06/17 06:05
字数 538
阅读 24
收藏 0

假设需要编写一个程序,用来计算在一个输入的句子中,除单引号和双引号以外的字符出现了多少次。可以用逻辑运算符来实现该目的,可以用英文的句号来标识一个句子的结束。

程序清单  7.6 chcount.c

#include 
#define PERIOD '.'
int main (void)
{
    int ch;
    int charcount=0;

    while((ch=getchar())!=PERIOD)
    {
        if(ch!='"' && ch!='\'')  //如果字符不是双引号并且它不是单引号
            charcount++;
    }
    printf("There are %d non-quote characters.\n",charcount);
    return 0;
}

逻辑运算符的优先级低于关系运算符,所以不必使用圆括号组合表达式。

C的逻辑运算符

运算符 含义
&&
||
!

假设A和B是两个简单的关系表达式,那么可以声明如下:

*仅当A和B都为真时,A&&B才为真。

*如果A为真或B为真或二者都为真,A||B为真。

*如果A为真,!A为假;如果A为假,!A为真。

7.3.1 改变拼写法:iso646.h

C99标准为逻辑运算符增加了可供选择的拼写法。它们在iso646.h头文件中定义。

表7.4 逻辑运算符的可选表示法

传统的 iso646.h
&& and
|| or
not

7.3.2  优先级

!运算符拥有最高的优先级,它高于乘法运算,和增量运算符的优先级相同,仅次于圆括号。&&运算符的优先级高于||,这二者的优先级都低于关系运算符而高于赋值运算符。

7.3.3  求值的顺序

C保证逻辑运算符是从左到右求值的。&&和||运算符是序列的分界点,因此在程序从一个操作数前进到下一个操作数之前,所有的副作用都会生效。而且,C保证一旦发现某个元素使表达式总体无效,求值将立刻停止。

7.3.4  范围

可以把&&运算符用于测试范围。例如:range>=90 && range<=100,千万不要像数学上这样写90<=range<=100。

© 著作权归作者所有

idreamo
粉丝 18
博文 139
码字总数 224743
作品 0
青岛
产品经理
私信 提问
C Primer Plus 第11章 11.7 ctype.h字符函数和字符串

第7章“C控制语句 分支和跳转”介绍了ctype.h系列字符相关的函数。这些函数不能被 应用于整个字符串,但是可以被应用于字符串中的个别字符。程序清单11.26定义了一个函数,它把toupper( )函数...

idreamo
2016/08/27
52
0
《Java从小白到大牛》之第7章 控制语句

《Java从小白到大牛》纸质版已经上架了!!! 程序设计中的控制语句有三种,即顺序、分支和循环语句。Java程序通过控制语句来管理程序流,完成一定的任务。程序流是由若干个语句组成的,语句...

tony关东升
2018/06/25
0
0
C Primer Plus 第7章 C控制语句:分支和跳转 本章概要

在本章中您将学习到以下内容: *关键字 if / else / switch / continue / break / case / default / goto *运算符 && || ?: *函数: getchar() / putchar() 以及ctype.h系列 *怎样使用if和i...

idreamo
2016/06/12
47
0
C Primer Plus 第7章 C控制语句:分支和跳转 7.2 if语句中添加 else 关键字

if else 语句的通用形式为: if (expression) statement1 else statement2 如果expression为真(非零),就执行statement1;如果expression为假或零,则执行跟在else后的那一条语句(stateme...

idreamo
2016/06/16
45
0
C Primer Plus 第7章 C控制语句:分支和跳转 7.1 if语句

这个程序读入一系列每日的最低温度(摄氏度),并报告输入的总数,以及最低温度在零度以下的天数的百分率。在一个循环里使用scanf()读入数值,在每一次循环中增加计数器的值来统计输入数值的...

idreamo
2016/06/13
80
0

没有更多内容

加载失败,请刷新页面

加载更多

查看线上日志常用命令

cat 命令(文本输出命令) 通常查找出错误日志 cat error.log | grep 'nick' , 这时候我们要输出当前这个日志的前后几行: 显示file文件里匹配nick那行以及上下5行 cat error.log | grep -C ...

xiaolyuh
10分钟前
3
0
六、Java设计模式之工厂方法

工厂方法定义: 定义一个创建对象的接口,但让实现这个接口的类来决定实例化哪个类,工厂方法让类的实例化推迟到子类中进行 类型:创建型 工厂方法-使用场景: 创建对象需要大量重复的代码 ...

东风破2019
16分钟前
2
0
win服务器管理遇到的一系列问题记录

有些小伙伴在使用iis7远程桌面管理工具的时候总是会遇到一系列的问题,下面就是为大家介绍一下服务器日常管理过程中出现的问题及我的解决办法和心得。希望能帮到大家。   拒绝服务器重新启...

1717197346
24分钟前
2
0
flutter 剪切板 复制粘贴

复制粘贴功能 import 'package:flutter/services.dart'; Clipboard.setData(ClipboardData(text:_text));Clipboard.getData;...

zdglf
26分钟前
2
0
如何保证消息的可靠性传输?或者说,如何处理消息丢失的问题?

面试题 如何保证消息的可靠性传输?或者说,如何处理消息丢失的问题? 面试官心理分析 这个是肯定的,用 MQ 有个基本原则,就是数据不能多一条,也不能少一条,不能多,就是前面说的重复消费...

米兜
27分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部