iOS学习之C语言分支结构
一、BOOL类型
返回值:真:YES 假:NO
定义一个布尔类型的变量
YES == 1, NO == 0
计算机在识别时,YES就替换成1,NO就替换成0
BOOL isGirl = YES;
printf("张飞是女的吗:%d\n", isGirl);
bool是C语言中提供的,BOOL是OC提供的
bool,返回值 true false
C语言中认为0为假,非0即真
计算BOOL类型的字节
unsigned 无符号类型
sizeof 输出的是无符号长整形
unsigned long size = sizeof(BOOL);
printf("size = %lu\n", size);
unsigned long intSize = sizeof(int);
printf("intSize = %lu\n", intSize);
二、关系运算符
作用:用来进行两个数比较。
关系运算符的结果有两种,真或假,用BOOL类型变量来接收
1. > <
BOOL r1 = > ;
printf("r1 = %d\n", r1);
BOOL r2 = < ;
printf("r2 = %d\n", r2);
, b = , c = ;
BOOL r3 = a < b < c; 先运算a < b,再和c比较
printf("r3 = %d\n", r3);
BOOL r4 = >= ;
printf("r4 = %d\n", r4);
BOOL r5 = <= ;
printf("r5 = %d\n", r5);
2.>= <=
符合>或者=任何一个,结果为真
BOOL r4 = >= ;
printf("r4 = %d\n", r4);
BOOL r5 = <= ;
printf("r5 = %d\n", r5);
3. ==, !=
= 用来赋值,==用来判断两个数是否相等
BOOL r6 = == ;
printf("r6 = %d\n", r6);
BOOL r7 = != ;
printf("r7 = %d\n", r7);
三、逻辑运算符
逻辑与:&&, 逻辑或: ||, 逻辑非 !
逻辑表达式的结果只有两种,真或假,用BOOL类型的变量来接收
逻辑与, 并且,同时
表达式: 表达式1 && 表达式2
运算规则 都为真 结果为真 一方为假 结果为假
;
;
BOOL r1 = (a < b) && (b == );
printf("r1 = %d\n", r1);
BOOL r2 = (b > a) && (a != );
printf("r2 = %d\n", r2);
//短路现象:表达式1的结果为假,整个逻辑表达式的结果为假,表达式2将不再执行
BOOL r3 = (a > b) && (a++);
printf("r3 = %d\n", r3);
printf("a = %d\n", a);
逻辑或 或者,不强调同时
表达式: 表达式1 || 表达式2
运算规则:表达式1或者表达式2任何一个为真,整个逻辑表达式的结果为真,只有当表达式1和表达式2同时为假,整个逻辑表达式结果为假(一真即真,全假则假)
;
;
BOOL r1 = (a > b) || (b == );
printf("r1 = %d\n", r1);
BOOL r2 = (b < a) || (a != );
printf("r2 = %d\n", r2);
//短路现象:当表达式1的结果为真,整个逻辑表达式的结果为真,表达式2将不再执行
BOOL r3 = (a < b) || (a++);
printf("r3 = %d\n", r3);
printf("a = %d\n", a);
逻辑非 取反
BOOL r4 = NO;
BOOL r5 = !r4;
printf("r5 = %d\n", r5);
四、if语句
第一种形式
/*
if (条件表达式) {
分支语句;
}
条件表达式为真,执行分支语句,如果为假,执行分支语句下面的内容
*/
, b = ;
if (a < b) {
printf("条件表达式为真\n");
}
printf("我在分支语句的下面\n");
// 练习:定义一个变量age,从键盘输入值,如果age大于等于18,输出”你已经成年了“。
;
printf("请入年龄:");
scanf("%d", &age);
){
printf("你已经成年了");
}
练习:控制台输入一个字符,如果输入的是m,则输出男性,否则什么都不输出。
;
printf("请输入一个字符\n");
scanf("%c", &c);
if (c == 'm') {
printf("男性\n");
printf("不是女性\n");
}
if语句的第二种形式
/*
if (条件表达式) {
语句1;
} else {
语句2;
}
如果条件表达式为真,执行语句1,否则执行语句2
*/
//从控制台输入一个字符,如果输入的是m,则输出男性,否则输出女性
;
printf("请输入一个字符\n");
scanf("%c", &ch);
if (ch == 'm') {
printf("男性\n");
} else {
printf("女性\n");
}
练习:定义一个变量age,从键盘输入值,如果age大于等于18,输出”你已经成年了“,否则输出"你还是个孩子"。
;
printf("请输入年龄:");
scanf("%d", &age);
) {
printf("你已经成年了");
} else {
printf("你还是个孩子");
}
练习:输入一个年份,判断该年份是否是闰年?如果是闰年,则输出该年是闰年,否则输出该年不是闰年。
//(能被400整除) || ((能被4整除) && (不能被100整除))
;
printf("请输入一个年份\n");
scanf("%d", &year);
BOOL r1 = year % == ;
BOOL r2 = year % == ;
BOOL r3 = year % != ;
if (r1 || (r2 && r3)) {
printf("是闰年\n");
} else {
printf("不是闰年\n");
}
条件运算符 ? :
条件表达式? 表达式1 : 表达式2;
如果条件表达式为真,执行表达式1,否则执行表达式2
;
;
;
if (a > b) {
c = a;
} else {
c = b;
}
printf("c = %d\n", c);
c = a > b ? a : b;
printf("c = %d\n", c);
求三个数的最大值
;
;
;
;
max = a > b ? a : b;
max = max > c ? max : c;
printf("max = %d\n", max);
if语句的第三种形式
/*
if (条件表达式1) {
语句1;
} else if (条件表达式2) {
语句2;
} else if (条件表达式3){
语句3;
} else {
语句4;
}
*/
从控制台输入一个字符,如果输入的是m,则输出男性,否则如果输入的是f,输出女性,否则输出人妖
;
printf("请输入一个字符\n");
scanf("%c", &ch);
if (ch == 'm') {
printf("男性\n");
} else if (ch == 'f') {
printf("女性\n");
} else {
printf("人妖\n");
}
练习: 从键盘输入一个字符,如果是数字打印 this is digital,如果是大写字母,打印 this is capital letter,如果是小写字母,打印 this is letter,如果是其他字符,打印 other。
//>= '0' <= '9'
//>= 'A' <= 'Z'
//>= 'a' <= 'z'
;
printf("请输入一个字符\n");
scanf("%c", &ch);
') {
printf("this is digital\n");
} else if (ch >= 'A' && ch <= 'Z') {
printf("this is capital letter\n");
} else if (ch >= 'a' && ch <= 'z') {
printf("this is letter\n");
} else {
printf("other\n");
}
五、switch...case分支
switch (整型或者字符型的表达式) {
case 值1(整型或者字符型的常量): {
语句1;
break;
}
case 值2: {
语句2;
break;
}
......
default: {
语句3;
break;
}
}
先执行switch后的表达式,根据表达式的值查找想要的case分支,并执行分支语句
default:默认分支,如果没有找到对应的分支,执行default分支
break:结束当前的case分支
从控制台输入一个字符,如果输入的是m,则输出男性,否则如果输入的是f,输出女性,否则输出人妖
;
printf("请输入一个字符\n");
scanf("%c", &ch);
switch (ch) {
case 'm': {
; // 如果需要在case分支中定义变量,分支语句用{}括起来
printf("男性\n");
break;
}
case 'f': {
printf("女性\n");
break;
}
default: {
printf("人妖\n");
break;
}
}
,对应打出春夏秋冬的英文词。
;
printf("请输入1~4的整数\n");
scanf("%d", &value);
switch (value) {
:
printf("Spring\n");
break;
:
printf("Summer\n");
break;
:
printf("Autumn\n");
break;
:
printf("Winter\n");
break;
default:
break;
}
iOS学习之C语言分支结构的更多相关文章
- iOS学习之C语言循环结构
一.while循环 while (循环条件) { 循环体: } // 1.定义循环变量 int time = 1; // 2.循环条件 while ( ...
- IOS学习笔记07---C语言函数-printf函数
IOS学习笔记07---C语言函数-printf函数 0 7.C语言5-printf函数 ------------------------- ----------------------------- ...
- IOS学习笔记06---C语言函数
IOS学习笔记06---C语言函数 -------------------------------------------- qq交流群:创梦技术交流群:251572072 ...
- iOS学习笔记---c语言第二天
一.bool布尔类型 c语言没有bool类型,oc里有bool类型 是一种非真即假的数据类型,布尔类型的变量只有yes和no两个值.yes表示表达式是真,no表示表达式是假. 在c语言中认为非0 ...
- C语言分支结构之if else语句
前面我们看到的代码都是顺序执行的,也就是先执行第一条语句,然后是第二条.第三条……一直到最后一条语句,这称为顺序结构. 但是对于很多情况,顺序结构的代码是远远不够的,比如一个程序限制了只能成年人使用, ...
- Objective-C 学习笔记(一) 语言程序结构
Objective-C语言程序结构 “Hello World”简单示例 #import <Foundation/Foundation.h> //预处理命令,它告诉Objective-C语言 ...
- iOS学习02C语言分支结构
1. BOOL类型 返回值:真:YES 假:NO BOOL数据类型占一个字节的内存空间,占位符为%d. 计算机在识别时,YES就替换成1,NO就替换成0. bool是C语言中的布尔类型,返回值为tr ...
- iOS学习之C语言结构体
结构体:用来存放相同类型数据或者不同类型数据的自定义类型. 结构体定义(声明) struct 结构体名 { 成员变量1; 成员变量2; ... }; typedef 现有类型 新的类 ...
- iOS学习笔记---oc语言第一天
第一讲 初始类和对象 c语言的超集,允许在oc中使用c语言源代码.编译器兼容c语言程序 具备完善的面向对象特性 包含一个运行时系统 类库丰富 面向对象编程 oop 面向对象语言:c++ java ...
随机推荐
- 学习记录 彻底搞清 C#中a++与++a的区别
首先 a++和++a 的定义:看个例子A: a=5; b=++a; // 相当于a=a+1;b=a; 结果是a=6,b=6B: a=5; b=a++; // 相当于b=a;a=a+1; 结果是a=6, ...
- 洛谷P1473 零的数列 Zero Sum
P1473 零的数列 Zero Sum 134通过 170提交 题目提供者该用户不存在 标签USACO 难度普及/提高- 提交 讨论 题解 最新讨论 路过的一定帮我看错了我死了- 题目描述 请考虑 ...
- Android 类库打包、发布方法
开发Android应用的时候,对于可用于多个应用的公用的部分,或是打算发布给第三方进行应用集成的部分,要把这部分打包成类库怎么做呢? Android应用使用ADT打包成apk,apk中包含了运行程序所 ...
- 【Hibernate 4】一对多映射配置
一.一对多映射简介 建立一对多关系关系的表的原则是将一的一方的主键加入到多的一方的表作为外键.这里以学生和班级为例子来演示.以前不用hibernate时建立pojo类要在学生类Student中加入一个 ...
- pycurl
http://www.cnblogs.com/lonelycatcher/archive/2012/02/09/2344005.html http://ju.outofmemory.cn/entry/ ...
- pxecfg&kickstart生成脚本
em tm 00:00:00:00:00:12 10.180.1.12 255.255.255.0 173.45.34.25 255.255.255.225 173.45.34.1 em tm 00: ...
- tech
流式计算框架storm.spark.genfire.esper(CEP)
- 如何判断raid1中哪块硬盘损坏?
服务器 2块硬盘做的raid1,如果其中有一块坏掉,如何能判断是哪块坏掉? 方法①.通过硬盘硬件指示灯进行观察,一般黄灯代表硬盘存在问题,显示红灯则代表硬盘损坏.方法②.通过开机进入阵列配置进行查看, ...
- Apache虚拟主机配置(多个域名访问多个目录)
Apache虚拟主机配置(多个域名访问多个目录) 为了方便管理虚拟主机,我决定使用一种方法,那就是修改httpd-vhosts.conf文件. 第一步首先要使扩展文件httpd-vhosts.conf ...
- C++多态性——函数的覆盖和隐藏
1.函数的覆盖 覆盖的条件: 基类函数必须是虚函数(使用Virtual关键字进行声明): 发生覆盖的两个函数必须分别位于派生类和基类中: 函数名称与参数列表必须完全一样: 2.函数的隐藏 隐藏,是指派 ...