C语言从0到1(06)——条件结构(01)

一、什么是条件结构

条件结构又称分支结构、选择结构。

若对比现实生活中:
如果你是男士:进男厕所
如果你是女士:进女厕所
如果你是…

程序源于生活,所以在程序中也同样存在很多的选择,这就是条件结构:

在一个算法中,经常会遇到一些条件的判断,算法的流程根据条件是否成立有不同的流向,条件结构就是处理这种过程的结构。

二、C语言中的条件结构

if 结构、if else 结构、多重if else 结构、嵌套if结构、switch case结构

  • if结构
    语法:
if (条件表达式)
{
     //执行的代码块
}

即,条件表达式为“真”(非0)时,执行代码,否则不执行代码。

  • 流程图:
Created with Raphaël 2.2.0 开始 条件表达式 执行的代码块 结束 yes no

例:输出两个数中较大的一个

int a = 10;
int b = 5;
int max = a;
if (b > a)
{
     max = b;
}
printf("max:%d\n", max);

输出结果为:max:10

  • if else 结构
    一般用于两种选择的情况,非真即假;
    语法:
if (条件表达式)
{
     //执行的代码块1
}
else
{
     //执行的代码块2
}
  • 流程图
Created with Raphaël 2.2.0 开始 条件表达式 执行的代码块1 结束 执行的代码块2 yes no

例:判断一个非零整数,是正整数还是负整数

int a = -1;
if (a > 0 )
{
     printf("a:%d,是正整数", a);
}
else
{
     printf("a:%d,是负整数", a);
}

输出结果:a:-1,是负整数

三、逻辑运算符

不管是现实生活中,还是程序世界中,都会出现“多个条件组合”的情况,同时满足或满足其中一个条件,才会执行下一个动作,比如:

如果你是高富帅(高且富且帅):那我们就结婚吧。
如果你有房或有车:那我考虑跟你交往。
只要你不是…

以上情况则需要逻辑运算符进行连接。

C语言中逻辑运算符有,&&(逻辑与)、||(逻辑或)、!(逻辑非)。

  • &&:用于连接两个子表达式,当且仅当两个子表达式都为“真”(非0)时,表达式的值才为“真”。
if (条件表达式1 && 条件表达式2)
{
     //执行的代码块
}

注意条件表达式1如果为假,则条件表达式2则不会执行。

例:判断一个数,是否在0~100之间。我们数学的写法是 0 < a < 100,但是C/C++编程语言中不支持这种写法。

int a  = 80;
if (a > 0 && a < 100)
{
     printf("a:%d,在0~100之间", a);
}
else
{
      printf("a:%d,不在0~100之间", a);
}

输出结果:a:80,在0~100之间

  • ||:用于连接两个子表达式,只要其中一个表达式的值为“真”(非0),表达式的值即为“真”。
if (条件表达式1 || 条件表达式2)
{
     //执行的代码块
}

注意条件表达式1的值为真,则条件表达式2不会执行

例:一个数是否大于100或小于-100

int a  = 10
if (a > 100 || a < -100)
{
     printf("符合条件");
} 
else
{
     printf("不符合条件");
}

输出结果:不符合条件

  • !:对表达式取反,即如果表达式本身为 真,则结果为 假;如果表达式本身为假,这结果为真。
if (!表达式)
{
     //执行的代码块
}  

例:判断一个数是否大于等于100的另一种写法

int a = 100
if!(a < 100))
{
     printf("a:%d,大于等于100", a);
}
else
{
      printf("a:%d,小于100", a);
}

输出结果:a:100,大于等于100

  • &&、||、!组合一览表
    逻辑运算符组合

总结: 本节讲解了if结构、if else结构,此两种结构是最基础的条件结构,使用频率也非常高;另外逻辑运算符在条件结构中使用很高,且各种条件组合容易出错,希望童鞋们多加练习。下节讲解更复杂的条件结构。

练习:

1.输入一个整数,判断是0,正还是负数。
2.输入某年某月某日,判断这一天是这一年的第几天?
3.编写一个程序,输入某人的身高(cm)和体重(kg),检测其体重是否为标准、过胖或过瘦。(1)标准体重=身高-110;(2)超过标准体重5kg(即大于5kg)为过胖;(3)低于标准体重5kg(即小于5kg)为过瘦。
4.输入一个年份,判断是否是闰年:能被4整除但不能被100整除的年份为普通闰年。(如2004年就是闰年,1999年不是闰年);能被400整除的为世纪闰年。(如2000年是闰年,1900年不是闰年)。
5.编写程序计算身高:每个做父母的都关心自己孩子成人后的身高,据有关生理卫生知识与数理统计分析表明,影响小孩成人后身高的因素有遗传、饮食习惯与坚持体育锻炼等。小孩成人后身高与其父母身高和自身性别密切相关。设faHeight为其父身高,moHeight为其母身高,身高预测公式为:
男性成人时身高=(faHeight+moHeight)*0.54(cm)
女性成人时身高=(faHeight*0.923+moHeight)/2(cm)
此外,如果喜爱体育锻炼,那么可增加身高2%,如果有良好的卫生饮食习惯,那么可增加身高1.5%。
程序要求:父亲的身高与母亲的身高、小孩的性别、是否喜爱体育锻炼和是否有良好的卫生饮食习惯也从键盘上输入,最终输出预测的身高
        提示:小孩性别的输入方式,可在屏幕给出提示“请输入小孩的性别(男孩输入M,女孩输入F):”,然后通过if语句来判断从键盘输入的字符是M还是F。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值