栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

第四周:进一步的循环与判断

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

第四周:进一步的循环与判断

一、逻辑类型与运算 (一)逻辑类型——bool
  • 原本为c++中才有,c++的bool中true表示1,false表示0
  • C语言中C99之后才有
  • C99后的版本有了“#include”
  • 之后就可以使用bool、true和false
  • 例:
#include 
#include 

int main()
{
    bool b=6>5;
    bool t=true;
    t=2;         //并没有真正bool量的类型,实际仍为整数
    printf("d%n",b);   //最终输出时仍为整数1而不是true
    return 0;
}
(二)逻辑运算
  • 逻辑运算是对逻辑量进行的运算,结果只有0(代表false)或者1(代表true)
  • 逻辑量是关系运算或逻辑运算的结果
运算符描述示例结果
!(单目运算符)逻辑非!a
  • 如果a是1结果就是0
  • 如果a是0结果就是1
  • (非true=false)
&&逻辑与a&&b
  • 如果a和b是1结果就是1
  • 否则就是为0
||逻辑或a||b
  • 如果a和b其中一个是1结果就是1
  • 如果a和b都是0结果就是0

例:用C语言表达数学中的区间,如:x∈(4,6)或x∈[4,6]

  • 错误示例:4
  • 正确示例:开区间:4
  • 正确示例:闭区间:4<=x&&x<=6

例:判断一个字符c是否为大写字母

  • c>='A'&&c<='Z'

优先级:!>&&>||

  • &&和||优先级低于关系运算,高于赋值运算

注:逻辑运算是自左向右进行,如果左边已经能出结果则不会做右边的运算

  • 对于&&,左边是false就不做右边
  • 对于||,左边是true就不做右边
  • 所以最好不要把赋值包括复合赋值组合进表达式
(三)条件运算和逗号运算 1.条件运算

例:count=(count>20)?count-10:count+10

分别对应   条件?条件满足值:条件不满足值

等于if(count>20)

            count=count-10;

else

            count=count+10;

  • 优先级高于赋值运算但是低于其他运算符低,但是会增加表达式难度
2.逗号运算(主要在for中使用)

for中想要多个计算,如:for(i=0,j=10;i


二、多路分支 (一)switch-case
#include 
int main(void)
{
    int type;
    scanf("%d",&type)
    switch(type){
    case 1:
       printf("您好");
       break;
    case 2:
       printf("早上好");
       break;
    case 3:
       printf("晚上好");
       break;
    case 4:
       printf("再见");
       break; 
    default:
       printf("啊?");
       break;
    }
    return 0;
}

即输入type值后直接跳进对应数值,不会从1,2,3顺次向下判断(但是级联if-else会)

switch(控制表达式){

case 常量:

     语句

     ——

case 常量:

     语句

     ——

default:

     语句

     ——

}

  • 控制表达式只能是整数型结果
  • 常量可以是常数也可以是常数计算表达式(C99 only)
  • case为分支标号
  • 如未遇到break则会执行到下一个case中,直到遇到break或switch结束
  • 分段函数不适合用switch-case(不是最佳)

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1029874.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号