2_C语言中的数据类型 (九)逻辑运算符与if语句、switch、条件运算符?、goto语句与标号
1 条件分支语句
1.1 关系运算符
在C语言中0代表false,非0代表真
1.1.1 <
小于
1.1.2 <=
小于等于
1.1.3 >
大于
1.1.4 >=
大于等于
1.1.5 ==
等于
1.1.6 !=
不等于
1.2 关系运算符优先级
前四种相同,后两种相同,前四种高于后两种优先级
1.3 逻辑运算符
1.3.1 &&
与
当运算符左右都是真的时候,那么整个表达式的结果为真
只有左右有一个值为假,那么整个表达式的结果为假
1.3.2 ||
或
当运算符左右只要有一个值是真的时候,那么整个表达式的结果为真
除非左右两个值都是假,那么整个表达式的结果为假
1.3.3 !
非
当值为真的时候,表达式为假,
当值为假的时候,表达式为真
1.4 if
单分支
If (条件)
{
//复合语句
}
当条件是真的时候,复合语句才能被执行,如果条件为假的时候,复合语句不执行
1.5 if else
双分支
If (条件)
{
复合语句1
}
Else
{
复合语句2
}
如果条件为真,那么执行复合语句1,否则执行复合语句2
1.6 if else if
多重if
If (条件1)
{
复合语句1
}
Else if (条件2)
{
复合语句2
}
Else if (条件3)
{
复合语句3
}
Else
{
复合语句4
}
当有多个else的时候,else总是和上方最近的那个if语句配对。
1.7 switch与break,default
多重选择
|
switch (i) { case 0: printf("i = 0\n"); break;//跳出switch的复合语句块 case 1: printf("i = 1\n"); break; case 2: printf("i = 2\n"); break; case 3: printf("i = 3\n"); break; case 4: printf("i = 4\n"); break; default://如果有所条件都不满足,那么执行default语句 printf("error\n"); } |
什么时候用if,什么时候用switch
当条件很复杂,一个条件中有&&,|| ,!存在,那么用if语句
如果条件很简单,但分支很多,那么适合用switch
1.8 条件运算符?
一个求绝对值的例子
|
int i = -8; int x = (i < 0) ? -i: i; |
先求?左边的条件,如果条件为真,那么等于:左边的值,否则等于:右边的值
一个求最大值的例子
|
int c = (a > b) ? a : b; |
1.3 goto语句与标号
无条件跳转goto
不建议使用goto语句,goto语句会使你的程序可读性变的很差
#include <stdio.h> int main01(void)
{
int a, b;
a = ;
b = ;
int i = a == b;//==是判断两个变量是否相等
i = < && == ;
i = <= && != ; i = == || < ; i = !( > || (a = b)); i = !a; a = ;
i = !a; i = !(a != b); printf("i = %d\n", i);
return ;
} //int main()一个函数在C语言里面,如果只是空(),代表这个函数可以有参数,也可以没有参数
//int main(void)如果是(void),就是明确的表达,没有任何参数 int main03()
{
int a = ;
int b = ;
if (a != b && b > )
{
printf("hello world\n");
} if ()
{
printf("true\n");
}
else
{
printf("false\n");
}
return ;
} int main()
{
int a = ;
int b = ;
printf("please input a:");
scanf("%d", &a);
printf("please input b:");
scanf("%d", &b); if (a > b)
{
printf("a = %d\n", a);
}else
{
printf("b = %d\n", b);
}
return ;
}
#include <stdio.h> int main01(void)
{
int a = ;
int b = ;
char c = ; printf("please input a:");
scanf("%d", &a);
getchar();//通过getchar这个函数将之前输入a时候用户按的回车键先收到 printf("please input operator:");
scanf("%c", &c);//通过键盘输入一个字符 printf("please input b:");
scanf("%d", &b); if (c == '+')
{
printf("a + b = %d\n", a + b);
}else if (c == '-')
{
printf("a - b = %d\n", a - b);
}else if (c == '*')
{
printf("a * b = %d\n", a * b);
}else if (c == '/')
{
if (b == )
{
printf("error\n");
}else
{
printf("a / b = %d\n", a / b);
}
}else
{
printf("error\n");
}
return ;
} int main02()
{
int i = ;
switch (i)
{
case :
printf("i = 0\n");
break;//跳出switch的复合语句块
case :
printf("i = 1\n");
break;
case :
printf("i = 2\n");
break;
case :
printf("i = 3\n");
break;
case :
printf("i = 4\n");
break;
default://如果有所条件都不满足,那么执行default语句
printf("error\n");
}
return ;
} int main03()
{
int i = ;
if (i == )
{
printf("i = 0\n");
}
else if (i == )
{
printf("i = 1\n");
}
else if (i == )
{
printf("i = 2\n");
}
else if (i == )
{
printf("i = 3\n");
}
else if (i == )
{
printf("i = 4\n");
}
else
{
printf("error\n");
}
return ;
} int main04(void)
{
int a = ;
int b = ;
char c = ; printf("please input a:");
scanf("%d", &a);
getchar();//通过getchar这个函数将之前输入a时候用户按的回车键先收到 printf("please input operator:");
scanf("%c", &c);//通过键盘输入一个字符 printf("please input b:");
scanf("%d", &b); switch (c)
{
case '+':
printf("a + b = %d\n", a + b);
break;
case '-':
printf("a - b = %d\n", a - b);
break;
case '*':
printf("a * b = %d\n", a * b);
break;
case '/':
switch(b)
{
case :
printf("error\n");
break;
default:
printf("a / b = %d\n", a / b);
}
break;
default:
printf("error\n");
}
return ;
} int main()
{
goto end;//无条件的跳转到一个标号去执行
int a = ;
int b = ;
scanf("%d", &a);
scanf("%d", &b); // int c;
// if (a > b)
// {
// c = a;
// }
// else
// {
// c = b;
// } int c = (a > b) ? a : b; printf("c = %d\n", c); end://标号
printf("end\n"); return ; }
资料来源:传智播客 仅供学习研究
2_C语言中的数据类型 (九)逻辑运算符与if语句、switch、条件运算符?、goto语句与标号的更多相关文章
- 2_C语言中的数据类型 (九)数组
1 数组 1.1 一维数组定义与使用 int array[10];//定义一个一维数组,名字叫array,一共有10个元素,每个元素都是int类型的 array[0] = ...
- 2_C语言中的数据类型 (七)printf与scanf
1 字符串格式化输出和输入 1.1 字符串在计算机内部的存储方式 字符串是内存中一段连续的char空间,以’\0’结尾 “”是C语言表达字符串的方式 1.2 ...
- 2_C语言中的数据类型 (四)整数与无符号数
1.1 sizeof关键字 sizeof是c语言关键字,功能是求指定数据类型在内存中的大小,单位:字节 sizeof与size_t类型 1.1 int类型 1.1.1 ...
- 2_C语言中的数据类型 (一)2.1.常量和字符串常量
2.1 常量就是在程序中不可变化的量,常量在定义的时候必须给一个初值. 1.1.1 #define 定义一个宏常量 1.1.2 const 定义一个const常量 ...
- 2_C语言中的数据类型 (十)数组
1 字符串与字符数组 1.1 字符数组定义 char array[100]; 1.2 字符数组初始化 char array[100] = {'a', 'b', ...
- 2_C语言中的数据类型 (八)运算符
1 运算符表达式和语句 1.1 基本运算符 1.1.1 = 数据对象:泛指数据在内存的存储区域 左值:表示可以被更改的数据对象 右值:能赋给左值的量 1 ...
- 2_C语言中的数据类型 (二)进制
1.1 二进制数.位.字节与字 我们习惯于十进制的数:10,12等 一个位只能表示0,或者1两种状态,简称bit,一个位是一个bit 一个字节为8个二进制,称为8位,简称BYTE,8个比特 ...
- 2_C语言中的数据类型 (十)while、for
1 循环语句 1.1 while while(条件),如果条件为真,循环继续,条件为假,循环结束 while (1)..是死循环的写法 1.2 continu ...
- 2_C语言中的数据类型 (七)类型限定
1.1 类型限定 1.1.1 const const是代表一个不能改变值的常量 1.1.2 volatile 代表变量是一个可能被CPU指令之外的地方改 ...
随机推荐
- 转:C#中的多态
封装.继承.多态,面向对象的三大特性,前两项理解相对容易,但要理解多态,特别是深入的了解,对于初学者而言可能就会有一定困难了.我一直认为学习OO的最好方法就是结合实践,封装.继承在实际工作中的应用随处 ...
- 用tableView实现的一种加载数据的布局
用tableView实现的一种加载数据的布局 此博文是应朋友之邀解决他的业务逻辑问题 效果: 素材: 源码: ImageCell.h 与 ImageCell.m // // ImageCell.h / ...
- svn回退到具体的版本
svn回退到具体的版本 找到项目的版本号 命令行中输入相关命令 到指定地点找到项目即可
- asp.net core中DockerFile文件中的COPY
今天在ubuntu系统中使用docker部署asp.net core时遇到了一个问题,docker build 的时候总会在最后一步提示 lstat obj/Docker/publish: no su ...
- Hadoop HBase概念学习系列之HBase里的宽表设计概念(表设计)(二十七)
在下面这篇博文里,我给各位博客们,分享了创建HBase表,但这远不止打好基础. HBase编程 API入门系列之create(管理端而言)(8) 在关系型数据库里,表的高表和宽表是不存在的.在如HBa ...
- Alpha 冲刺报告(5/10)
Alpha 冲刺报告(5/10) 队名:洛基小队 峻雄(组长) 已完成:修改角色的移动脚本 明日计划:完善此项脚本 剩余任务:角色的属性脚本 困难:没有时间,代码的编写时间太慢 ----------- ...
- spring-boot默认的application.properties属性
# =================================================================== # COMMON SPRING BOOT PROPERTIE ...
- Charles应用指南--安装与代理篇
Charles是开发测试过程中十分常用的一款代理软件,之前也写了一点基本使用.最近有新同事入职头一次用这个,就写了这么一份基本的安装和配置笔记. Charles 下载地址 mac:链接: https: ...
- MySQL - FEDERATED引擎实现跨服务器查询
1. MySQL插件的安装与卸载 # 查看插件信息 mysql> show plugins; mysql> select plugin_name,plugin_status,plugin_ ...
- php魔术变量
__LINE__ 文件中的当前行号 __FILE__ 文件的完整路径和文件名 __DIR__ 文件所在的目录 __FUNCTION__ 自 PHP 5 起本常量返回该函数被定义时的名字 __C ...