首页 > 代码库 > c(分支结构、if语句、关系运算符)
c(分支结构、if语句、关系运算符)
//
// c语言基础,分支结构
//BOOL,布尔类型,是一个非真即假的数据类型,只有两个值YES和NO
//YES = 1,NO = 0;
//在C语言中,非0即为真;(-1、3都是真)
int a = 0;
BOOL b= NO;
//关系运算符
int m = 5, n = 10;
BOOL result = NO;
//大于
result = m > n;
printf("result = %d\n", result);//BOOL类型用%d打印 no
//大于等于
result = m >= n;
printf("result = %d\n", result); // no
//小于 <
result = m < n;
printf("result = %d\n", result); //yes
//小于等于 <=
result = m <= n;
printf("result = %d\n", result); //yes
//等于 ==
result = m == n;
printf("result = %d\n", result); //no
//不等于 !=
result = m != n;
printf("result = %d\n", result); //yes
//关系运算符左右都是表达式
result = (m + n) > 10;
//逻辑运算符
int i = 3, j = 5, k = 7;
//逻辑与 &&
//&&左右两侧 同时为真才为真,有一个为假即为假
//相当于并且
result = i >= j && k != j; //no
//逻辑或 ||
//||左右两侧,同时为假才为假,有一个为真即为真
//相当于“或者”
result = j == i || j < k; //yes
//逻辑非 !
//颠倒黑白
result = !(i != k); //no
//逻辑短路
//1.逻辑与得短路状态
//当&&左侧的结果为假时,右侧就不参与判断
int c = 0;
result = i > k && c++;
printf("i = %d, k = %d, c = %d\n", i, k, c);
//2.逻辑获得短路状态
//当||左侧的结果为真时,右侧就不参与判断
result = (i + j) >= k || c++;
printf("i = %d, k = %d, c = %d\n", i, j, k);
//github 程序员要求的或者博客
//cocoaChina
//if语句
//第一种形式
/*
if (条件语句) {
语句1;
…;
}
int count = 10;
int flag = 0;
printf("是否看到西瓜(1、是;2、否):");
scanf("%d", &flag);
if (flag == 1) {
count = 1;
}
printf("买了%d个包子\n",count);
int grade;
printf("请输入考试分数:");
scanf("%d", &grade);
if (grade == 100) {
printf("么么哒!亲一个。\n");
}
else if (60 <= grade) {
printf("怎么回事,下次加油\n");
}
else {
printf("跪下!!!\n");
}
char gender;
printf("请输入一个字符:");
scanf("%c", &gender);
if (gender == ‘m‘ ) {
printf("男性\n");
}
if(gender != ‘m‘ ){
printf("女性\n");
}
*/
//if的第二种形式
/*
if ( 条件表达式){
语句1;
}else{
语句2;
}
char gender;
printf("请输入一个字符:");
scanf("%c", &gender);
if (gender == ‘m‘ ) {
printf("男性\n");
}
else{
printf("女性\n");
}
int a = 0, b = 0, max = 0;
printf("请输入两个整数:");
scanf("%d %d", &a, &b);
if ( a > b ) {
printf("max = %d\n", a);
} else
{
printf("max = %d\n", b);
}
int age = 0;
printf("美女你年龄是多少?");
scanf("%d", &age);
if (20 <= age && age <= 30 ) {
printf("咱们交往吧!\n");
} else {
int height = 0;
printf("输入身高:");
scanf("%d" , &height);
if (height >= 165) {
printf("身高还是可以的\n");
}
else {
printf("我去接孩子放学\n");
}
}
int year;
printf("请输入年份:");
scanf("%d", & year);
if (year % 400 == 0 || (year % 4 == 0 && year % 100 != 0)) {
printf("是闰年\n");
} else {
printf("是平年\n");
}
//3.if的第三种形式
if (条件语句1) {
语句1;
} else if (条件语句2){
语句2;
} else {
语句3;
}
float grade = 0.0;
printf("请输入你的成绩:");
scanf("%f", &grade);
if (grade >90 && grade <= 100) { //已经说明它小于90,就是已经排除了上面的条件
printf("你获得“优”\n");
} else if (grade >= 80) {
printf("你获得“良”\n");
} else if (grade >= 70) {
printf("你获得“中”\n");
} else if (grade >= 60) {
printf("你获得“差”\n");
} else {
printf("你不及格\n");
}
char string;
printf("请输入一个字符:");
scanf("%c", &string);
if (string >=‘0‘ && string <= ‘9‘ ) { //还可以通过ASCII表查询其范围进行断
printf("this is digital\n");
} else if (string >= ‘A‘ && string <= ‘Z‘ ) {
printf("this is capital letter\n");
} else if (string >=‘a‘ && string <= ‘z‘ ) {
printf("this is letter\n");
} else {
printf("other\n");
}
// getchar(); 获取缓冲区的一个字符
// rewind(stdin) 清空缓冲区
char c = 0;
printf("请输入一个字符:");
scanf("%c", &c);
char c1 = getchar();
rewind(stdin);
char d = 0;
printf("请输入一个字符:");
scanf("%c", &d);
printf("c = %c, c1 = %c, d = %c\n", c, c1, d );
//条件运算符(三目运算)
// 条件表达式 ? 表达式1 : 表达式2;
int num1 = 20, num2 = 10;
int max = 0;
//max = num1 > num2 ? num1 : num2;
//相当于
if (num1 > num2 ) {
max = num1;
} else {
max = num2;
}
printf("max = %d\n", max);
int num1 = 0, num2 = 0, max = 0;
printf("请输入两个整数:");
scanf("%d %d", &num1, &num2);
max = num1 >= num2 ? num1++ : ++num2;
printf("max = %d, num1 = %d, num2 = %d\n", max, num1, num2);
//switch
switch (整型表达式) {
case 值1 :
语句1;
break;
case 值2;
语句2;
break;
case…;
default:
break;
}
int count = 0;
int price = 0;
printf("输入买酸奶瓶数:");
scanf("%d", &count);
switch (count) {
case 1 :
price = 3;
break;
case 3 :
price = 10;
break;
default:
price = 3 * count;
break;
}
printf("price = %d\n", price);
//switch的执行顺序;
//根据整型表达式的返回值,去找对应的case
//如果找到,就执行case中的语句,直到遇到break才跳出switch语句
//如果找不到,就执行default中的语句
//switch需要注意
//1.case中加break;
//2.不要忘了写default;
int mouth = 0, day = 0;
printf("请输入月份:");
scanf("%d", &mouth);
switch (mouth) {
case 1 : case 3 : case 5 : case 7 : case 8 : case 10 : case 12 :
day = 31;
break;
case 2 :
day = 28;
break;
case 4 : case 6 : case 9 : case 11 :
day = 30;
break;
default:
printf("输入月份不对\n");
break;
}
printf("该月的天数为:%d\n", day);
return 0;
}
c(分支结构、if语句、关系运算符)