#import <Foundation/Foundation.h>
//enum 枚举变量名{
// 标示符1,//默认为0,也可以自定义,数值是递增,增量为1
// 标示符2,
// .
// .
// .
//
//}
enum student{
red ,//默认为0,下面依次递增
yellow,
green = 10,//修改后下面的值,在新值的基础上,依次递增
blue
};
int main(int argc, const char * argv[]){
printf("%d%d%d%d",red,yellow,green,blue);
#pragma mark----- 布尔类型---------
/*
1.两种数值:真,假
2.在OC语言中 BOOL: YES为真,NO为假
3.YES定义为1,NO定义为0
4.占位符:%d
5.作用:用于分支结构和循环结构的判断
BOOL a1 = YES;
BOOL a2 = NO;
printf("%d
%d
",a1,a2);
*/
#pragma mark -------关系运算符--------
/*
1.用于进行两个数的比较
2.关系运算符的运算结果只有两种:真,假(使用BOOL类型接收)
3.关系表达式,由常量,变量,关系运算符组合而成。
*/
#pragma mark---------逻辑运算符-----------
/*
1.逻辑运算符的运算结果只有两种:真,加。使用BOOL类型来接收
2.逻辑表达式:由常量,变量,逻辑运算符组合而成
大于,小于
BOOL a1 = 5 > 3;
printf("%d
",a1);
BOOL a2 = 50 < 30;
printf("%d
",a2);
练习:定义两个变量,分别存储C成绩,和OC语言成绩。定义变量接受两个分数的比较结果,并输出。
int cScore = 84, ocScore = 73;
BOOL c = cScore< ocScore;
printf("两个分数的比较结果为:%d
",c);
大于等于,小于等于
和数学中的写法有差异,注意语法规则
BOOL b1 = 5 >= 5;
printf("%d
",b1);
BOOL b2 = 8 <= 6;
printf("%d
",b2);
等于和不等于
等于:== 用于判断是否相等,左右两侧都可以是常量,也可以是变量
= 用于赋值,左侧只能是变量
浮点型 不能用==来比较,小数存在四舍五入的误差,不精确
*/
//1.逻辑与&&
/*
1.表达式1&&表达式2
2.运算规则;
(1)先执行表达式1,再执行表达式2
(2)表达式1和表达式2同时为真,结果为真,其他情况结果为假,一假即假,
3.短路现象
表达式1的值如果为假,那么不再计算表达式2的值
int a = 10;
int b = 20;
BOOL r1 = (a < b )&& (b == 20);
printf("%d
",r1);
*/
//逻辑或 ||
/*
1.逻辑或的表达式:表达式1||表达式2
2.运算规则
(1)先运行表达式1,再运行表达式2
(2)表达式1和表达式2如果有一个为真的话或者两个都为真结果为真,一真即真。
int a = 30;
int b = 40;
BOOL r1 = (a < b) || (b == 21);
printf("%d
",r1);
*/
//逻辑非 !
/*
1.逻辑非,即取反值
2.运算规则:对真假取反
*/
// BOOL a = YES;
// BOOL b = !a;
// printf("%d
",b);
//运算符的优先级
// 算数运算符>关系运算符>逻辑运算符>赋值运算符
#pragma mark---------if控制语句-----------
/*
1.程序设计的三种结构:顺序结构,分支结构,循环结构
2.分支:又称为选择,通过进行一个判断,选择执行某个分支的语句
例如:如果有女朋友,那么就买房结婚,如果没有女朋友,那就打光棍
3.if控制语句,switch控制语句
4.if控制语句的作用:通过进行一个判断,选择执行某个分支的语句
if语句的三种形式
第一种
if(条件表达式){
语句
}
int a = 4, b = 5;
if (a < b) {
printf("条件表达式为真");
}// () {}这两者后面都没有;
练习:从控制台输入一个整数,判断这个整数是否大于100,如果大于的话,输出大于100
int a = 0 ;
printf("请输入一个数:
");
scanf("%d",&a );
if (a > 100) {
printf("大于100
");
}
练习:从控制台输入一个字符,如果输入的是m,那么输出男性
char a = '0';
printf("请输入一个字符:");
scanf("%c",&a);
if (a == 'm') {
printf("男性
");
}
if语句的第二种形式
如果。。。否则。。。。if。。。else。。。。
if ( 条件表达式) {
语句1
}else{
语句2
}
int d = 1, e = 2;
if (d > e) {
printf("我回家了");
}else {
printf("你中奖了");
}
练习:从控制台输入一个字符,如果输入的是m,则输出男性,否则输出女性
char a = '0';
printf("请输入一个字符:
");
scanf("%c",&a);
if (a == 'm') {
printf("男性
");
}else{
printf("女性
");
}
输入一个年份,判断该年份是否为闰年,如果是闰年,则输出是闰年,否则输出不是闰年
提示:能被400整除,或者能被4整除,但是不能被100整除的数
int year = 0;
printf("输入一个年份
");
scanf("%d",&year);
BOOL b1 = year % 400 == 0;
BOOL b2 = (year % 4 == 0)&&(year % 100 != 0);
if (b1 || b2) {
printf("是闰年
");
}else{
printf("不是闰年
");
}
if语句的第三种形式
级联式 多分支结构
if (条件表达式1) {
语句1;
}else if (条件表达式2){
语句2;
}else{
语句3;
}
练习:从控制台输入一个字符,如果输入的是m,则输出男性,如果输入对的是'f',那么输出女性,否则输出怪人
char a = '0';
printf("输入一个字符:
");
scanf("%c",&a);
if (a == 'm') {
printf("男性
");
}else if(a == 'f'){
printf("女性
");
}else{
printf("怪人
");
}
从控制台输入一个数,如果小于60,那么输出该数字,如果等于60,输出现在时间,如果大于60,输出未来时间
int number = 0;
printf("输入一个整数:
");
scanf("%d",&number);
if (number < 60) {
printf("%d
",number);
}else if(number == 60){
printf("现在时间
");
}else{
printf("未来时间
");
}
条件运算符
表达式?表达式1:表达式2
运算规则:如果条件表达式为真,整个表达式的值为1,如果为假,整个表达式的值就为表达式2
int a = 3, b = 4;
int c = a > b ? a : b ;
printf("%d
",c);
练习:比较三个数,定义变量接收三个数中的最小值,并输出
int a = 1 , b = 2 , c = 3 , t = 0;
t = a < b ? a : b;
t = t < c ? t : c;
printf("%d
",t);
*/
#pragma mark ----------switch..case控制语句-------
/* switch (表达式) {
case 常量:{
语句
break;
}
default:
break;
}
多分支语句
作用:提供了多个分支,功能类似if - else if 级联式的控制语句
语法:
(1)switch后面是整形或者字符型的表达式
(2)case 后面是整型或者字符型的常量
(3)case 后面需要添加{}
(4)break :case 和default默认跟随一个break语句,用于结束case,然后结束整个swifch控制语句,再去执行下面的代码。
运行规则:
(1)switch控制语句中,如果表达式和某个case常量相等,那么执行这个case后面的语句
(2)如果没有和表达式相等case常量,执行default后面的语句
练习:从控制台输入一个字符,如果输入的是'm',则输出男性,如果输入的是f,则输出女性,否则输出怪人
char sex = 0;
printf("请输入一个字母:
");
scanf("%c",&sex);
switch (sex) {
case 'm':{
printf("男性
");
break;
}case 'f':{
printf("女性
");
break;
}
default:{
printf("妖怪
");
break;
}
}
练习:从控制台输入数字,输出对应的水果名称:1:苹果 2:梨 3:香蕉 4:西瓜
int a = 0;
printf("请输入一个数字:
");
scanf("%d",&a);
switch (a) {
case 1:{
printf("苹果
");
break;
}case 2:{
printf("梨
");
break;
}case 3:{
printf("香蕉
");
break;
}case 4:{
printf("西瓜
");
break;
}
default:
break;
}
*/
#pragma mark--------枚举----------
/*
1.枚举属于构造类型
2.一组具有名称的整形常量
3.提高代码的可读性
4.枚举类型的变量每次只能赋一个值,但是数值包含很多种
5.枚举是写在main函数外面的
*/