您的位置:首页 > 编程语言 > C语言/C++

C语言整理-2

2015-10-22 13:37 260 查看

分支结构

在学分支结构之前,要知道一点就是C89标准中没有BOOl这个类型,因此需要将标准升级为C99标准。

C99标准在Xcode中,在新建一个工程的时候,选择type时,选择foundation。

创建工程之后,会发现,与之前的main.c的后缀已经变为main.m。这是objective-C环境下的后缀。

与之前.c的页面中,还有不同的是:

将#include<stdio.h>换成

#import <Foundation/Foundation.h>

//import是oc语法,作用和include是一样的。都是引入一个文件。

//Foundation/Foundation.h 是系统提供的一些功能,可以直接用,比stdio.h所包含的东西多得多。

1、bool数据类型

bool数据类型,只有yes和no两个值,非真即假。在C语言中,认为,非0即为真。

用处:用于if语句的时候和循环判断的时候。

在编译过程中,C语言将bool的yes值编译成1存在内存中,将no值编译成0,保存在内存中。

#define yes 1

#define no 0

2、关系运算符

关系运算符主要就是两者之间的比较,> (大于),>= (大于等于),< (小于),<= (小于等于),== (等于),!=(不等于)。比较得出的结果是bool类型的值,用bool类型变量来存储。其他没什么了。

3、逻辑运算符

逻辑运算符就三个:与(&&),或(||),非(!)

参与运算的数,在符号两边都是bool值。得出的结果不是真就是假。

&& 逻辑与:只要有一个为假,全都为假。

|| 逻辑或:只要有一个为真,结果都为真。

!逻辑非:取反。

短路现象:

逻辑与运算的时候,如果系统检测到&&前的值是no,那么将不再去判断&&号后面的值,此时,如果&&后的值有赋值运算,赋值运算也不执行。

逻辑或运算的时候,如果系统检测到 || 号前的值是yes ,那么将不再去判断 || 号后面的值,此时,如果 || 后的值有赋值运算,赋值运算也不执行。

//短路现象
//逻辑与,如果前面判断是假,后面的判断不再执行。
// int num1 = -1 ;
// int num2 = -1;
// BOOL b3 = (num1 = 0) && (num2 = 2);//假
//
// printf("%d",b3);//0
// printf("num1 = %d \n",num1);// 0
// printf("num2 = %d]\n",num2); // -1

//短路现象
//逻辑或,如果前面判断是真,后面的判断不再执行。
// int num1 = -1 ;
// int num2 = -1;
// BOOL b3 = (num1 = 2) || (num2 = 0);//真
//
// printf("%d",b3);//1
// printf("num1 = %d \n",num1);// 2
// printf("num2 = %d)\n",num2); // -1

4、if语句

程序的三种结构:

顺序结构:按顺序执行程序,直到完事为止。

分支结构:if语句和switch

循环结构:循环的执行一段语句。直到循环条件结束为止。

分支结构有两个: if语句和switch语句

if语句有三种方式:

(1)if(条件表达式){

}

//分支结构
//if的(第一种形式)

// BOOL b1 = NO;
// if (/*条件表达式:要明确的表明条件是真是假*/b1){
// printf("你个大骗子。。。");
// }
//练习
/*
从控制台输入一个整数。
判断这个整数是否>100。
如果大于100,输出:“这个数大于100”
*/
// int num = 0;
// printf("请输入一个整数,按回车结束:\n");
// scanf("%d",&num);
// if(num > 100){
// printf("你输入的数为:%d \n",num);
// printf("这个整数大于100\n");
// }
// char c1 = 0;
// printf("输入一个字符,按回车结束:\n");
// scanf("%c",&c1);
// BOOL b1 ='m' == c1;
// if(b1){
// printf("输入的是男性");
// }

(2)if(条件表达式){

}else{

}

/ char c2 = 0;
// printf("请输入字符:");
// scanf("%c",&c2);
// if ('m' == c2) {
//
// printf("正太");
// }else{
// printf("萝莉");
// }

// int year = 0;
// printf("请输入年份,按回车结束:");
// scanf("%d",&year);
//
// //判断闰年的条件
// BOOL b1 = (year % 400 == 0 ) ;
// BOOL b2 =(year % 100 !=0) && (year % 4==0);
// if(b1 || b2){
//
// printf("%d\t是闰年\n",year);
//
// }else{
// printf("%d\t是平年!",year);
// }

(3)if(条件表达式){

}else if(条件表达式){

}else{

}

// char c3 = 0;
// printf("输入一个字符:");
// scanf("%c",&c3);
//
// if('m' == c3){
// printf("男性");
// }else if ('f' == c3){
// printf("女性");
// }else{
// printf("春哥");
// }

/*
输入一个字符,判断
s:春天
m:夏天
a:秋天
w:冬天
其他:输入有误。
*/
// char c1 = 0;
//
// printf("输入一个字符,按回车结束:");
//
// scanf("%c",&c1);
//
// if('s' == c1){
// printf("我是春天!");
// }else if('m' == c1 ){
// printf("我是夏天!");
//
// }else if('a' == c1){
// printf("我是秋天!");
//
// }else if ('w' == c1){
// printf("我是冬天!");
// }else{
// printf("输入有误!!");
// }

5、条件表达式

//条件表达式
// int num1 = 10;
// int num2 = 20;
//
// int num3 = num1>num2 ? num1 : num2;
//
// printf("num3 = %d",num3);

//课后练习题
/*
使用条件运算符,选择出三个数中,哪个最大。
*/

Switch 分支语句

Switch分支语句就是为了优化if(){}elseif(){}过多条件。

//switch分支语句
// switch (apple) {
// case apple:
// printf("我是苹果也!");
// //break:终止往后继续执行
// break;
// case banana:
// printf("我是香蕉也!");
// break;
// case orange:
// printf("我是橘子也!");
// break;
// case watermelon:
// printf("我是西瓜也!");
// break;
// default:
// printf("我不是水果也!");
// }

与else if一样的效果。

注意的是:switch ()括号中的条件必须为整型条件表达式。在每一个case下的语句代码,最后都要加上break,用来跳出switch语句。

//练习

// int season = 0;
// printf("请输入一个数字,按回车结束:");
// scanf("%d",&season);
//
// switch (season) {
// case 1:
// printf("春天啊我是!spring");
// break;
// case 2:
// printf("夏天啊我是!summer");
// break;
// case 3:
// printf("秋天啊我是!autumn");
// break;
// case 4:
// printf("冬天啊我是!winter");
// break;
//
// default:
// printf("啥也不是啊我!nothing");
// break;
// }

6、枚举enum

#import <Foundation/Foundation.h>
//枚举,建议写在这个地方。
enum season{
//第一个元素,默认为0.后面元素依次+1.spring自动被赋值为0,summer为1.
//每个值都可以改变默认值,后面的数还是依次+1.初始化过的默认值,后面的数还是依次+1
spring = 100,//100
summer = 200,// 200
autumn,//201
winter//202

};
// 练习,定义一个枚举

//定义五个水果:苹果(10),香蕉,橘子,西瓜
enum fruits{
apple = 10,
banana,
orange,
watermelon
};
int main(){
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: