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指令之外的地方改 ...
随机推荐
- python 下字符串格式时间比较
python 下有多个有关时间的模块,分别是time.datetime.calendar,今天重点讨论下time写法. 其中time模块,主要有以下方法: ltime=time.time() 获取当前 ...
- September 03rd 2017 Week 36th Sunday
What does it profit a man if he gains the whole world and loses his own soul? 失去灵魂,赢得世界又如何? It matte ...
- Sql Server 流程控制语句
T-SQL中用来编写流程控制模块的语句有:BEGIN...AND语句.IF...ELSE语句.CASE语句.WHILE语句.GOTO语句.BREAK语句.WAITFOR语句和RETURN语句. 批处理 ...
- SQL Server与CLR数据类型的对应关系
数据库 C#程序 int int32 text string bigint int64 binary System.Byte[] bit Boolean char string date System ...
- 归并排序(php实现)
<?php function mergeSort(&$arr){ $len = count($arr); msort($arr,0,$len-1); } function msort(& ...
- BZOJ 2330 糖果 差分约束求最小值
题目链接: https://www.lydsy.com/JudgeOnline/problem.php?id=2330 题目大意: 幼儿园里有N个小朋友,lxhgww老师现在想要给这些小朋友们分配糖果 ...
- VC++中关于控件重绘函数/消息 OnPaint,OnDraw,OnDrawItem,DrawItem的区别
而OnPaint()是CWnd的类成员,同时负责响应WM_PAINT消息. OnDraw()是CVIEW的成员函数,并且没有响应消息的功能.这就是为什么你用VC成的程序代码时,在视图类只有OnDraw ...
- Log4J日志配置与Juit测试
一.Log4j简介 Log4j有三个主要的组件:Loggers(记录器).Appenders(输出源)和Layouts(布局). 这里可简单理解为日志类别,日志要输出的地方和日志以何种形式输出.综合使 ...
- Linux下用mail 命令给163邮箱发送邮件!
linux上的邮件客户端比较多,找一个平时用的比较多mail命令来试试!! 环境 :centos7: 注意 : 服务器必须得有外网才行,qq邮箱作为在linux上的发送端邮箱,经过测试 163 和qq ...
- 单片机、CPU、指令集和操作系统的关系
郑重声明:转载自http://blog.csdn.net/zhongjin616/article/details/18765301 1> 首先讨论各种单片机与操作系统的关系 说到单片机,大家第一 ...