c语言入门(三)分支结构

一:bool布尔类型
二:关系运算符
三:逻辑运算符
四:if语句
五:switch语句

一:bool数据类型:
表示非真即假的数据类型,布尔类型的变量只有yes和no两个值
在c语言中,认为非0即为真,如果为0为假.


二:关系运算符
算数运算符(+ - * / % ++ -- )
位运算:
按位&(同时为真(1)才为真—计算机中的清零 )/
按位|(只要有一位为真就为真)   (按位或)
按位~(按位取反)/
按位异或^/ 托字符^(按位异或)相同为0,异或为1

左移<<(左移一位相当于乘2),末尾以0补齐,高位的被丢弃
右移>>(右移一位相当于除2);

关系运算符(> ,>=, <, <=,==,!= );
主要用于比较运算,返回的结果只有真假两种情况(yes/no),结果值用Bool类型变量存储;
注意:判断两个数是否相等,用==(双等号).



三:逻辑运算符
&&(逻辑与):运算符两边表达式同时为真的时候,整个逻辑表达式的结果为真;a>0&&a<5;
||(逻辑或):运算符两边表达式同时为假的时候,整个逻辑表达式的结果为假.
!(逻辑非):将表达式的结果取反.

注意事项:
//逻辑与的短路现象
   
 BOOL result7=a>b&&++b;//第一个为真,结果取决为第二个,二真,
   
 printf("result7=%d,b=%d\n",result7,b);
  
 //逻辑或的短路现象(两个表达式同为假,结果才为假)
  
 BOOL result8=a<b||++b;
   
 printf("result8=%d,b=%d\n",result8,b);
   
 //对于逻辑与运算,如果第一个表达式的结果为真,则第二个表达式的结果决定了整个逻辑与运算的表达式结果
   
 //对于逻辑或运算,如果第一个表达式的结果为假,则第二个表达式的结果决定了整个逻辑或运算的表达式结果


程序的执行顺序
★顺序执行语句;
通过进行一个判断在两个可选的语句序列之间选择执行(分支);
在满足某个条件的时候反复执行一个语句序列(循环);
四:if语句
用if语句可以构成分支结构,他根据给的条件进行判断
if(条件表达式)
{
语句1:
}
当条件表达式为真,执行语句1,否则,跳过语句1,继续执行下面的语句.
注意条件表达式后不要加”;”
如果有多个if语句:
多个if是所有的if都会进行判断

比如
a = 2;
if(a==1) c=1;
if(a==2) c=2;
if(a%2==0) c=3;
最终结果c=3

 
 
if语句第二种形式
if(条件表达式)
{
语句1:
}else
{
语句2
}
if语句第三种形式
语法形式(级联式)
if(条件表达式1)
{语句1;
}else if(条件表达式2){
语句2;
} else if(条件表达式3){
语句3;
}
注意:最后一个可以是else,else if可以根据条件写多个
当某个语句执行完后,下一句即使为真,也不执行,直接结束.
if else if是只要有满足条件的,就不再对之后的else if进行判断
a=2;
if(a==1) c=1;
else if(a==2) c=2;
else if(a%2==0) c=3;
最终结果c=2



五:switch语句
case情况
多分支语句,通过判断整型表达式的值,来决定执行那个分支.
switch—开关,case-情况
语法:
switch(整型表达式){
case 值1:{语句1;break;}
case 值2:{语句2;break;}
default:
     break;
}
break用在switch…case中用于结束某个case,然后执行switch之外的语句片段.也就是跳出switch语句.

//switch的条件是整型表达式,同时switch语句内部的每一个case都要对应一个关键字.如果某个case忘记使用break来跳出整个switch语句,那么程序会顺序向下执行,直到遇到下一个break才能结束switch语句.
注意事项:
开关决定发生的情况;
case后边的标签只能是整型常量或者整型常量表达式(表达式有返回值),不能用变量作为case的标签.
default 后面的break可以舍掉
整个default语句都可以舍掉
多个case可以使用同一个语句块.(当case没有代码段时,就会顺序执行到下一个case
case中定义变量要加{}

六:条件运算符
语法:
条件表达式?真结果表达式:假结果表达式;
作业:

分支语句,比较大小不同;
两边之和大于第三遍
简单行李托运价格;


printf("请输入小孩的性别(男孩输入M,女孩输入F:");
   
 getchar();
    scanf(
"%c",&sex);谁能解释一下为什么中间需要加gerchar()

这个是为了将缓冲流中的回车字符消除掉
getchar()是c语言中的一个函数,
可以用它来赋一个字符的值.

例如:char a;
     a=getchar();
 当你在键盘上输入一个字符后按回车;(输入u)
 那么字符变量a的值就是'u'了.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值