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语句与标号的更多相关文章

  1. 2_C语言中的数据类型 (九)数组

    1          数组 1.1       一维数组定义与使用 int array[10];//定义一个一维数组,名字叫array,一共有10个元素,每个元素都是int类型的 array[0] = ...

  2. 2_C语言中的数据类型 (七)printf与scanf

    1          字符串格式化输出和输入 1.1       字符串在计算机内部的存储方式 字符串是内存中一段连续的char空间,以’\0’结尾 “”是C语言表达字符串的方式 1.2       ...

  3. 2_C语言中的数据类型 (四)整数与无符号数

    1.1       sizeof关键字 sizeof是c语言关键字,功能是求指定数据类型在内存中的大小,单位:字节 sizeof与size_t类型 1.1       int类型 1.1.1      ...

  4. 2_C语言中的数据类型 (一)2.1.常量和字符串常量

    2.1 常量就是在程序中不可变化的量,常量在定义的时候必须给一个初值. 1.1.1          #define 定义一个宏常量 1.1.2          const 定义一个const常量 ...

  5. 2_C语言中的数据类型 (十)数组

    1          字符串与字符数组 1.1       字符数组定义 char array[100]; 1.2       字符数组初始化 char array[100] = {'a', 'b', ...

  6. 2_C语言中的数据类型 (八)运算符

    1          运算符表达式和语句 1.1       基本运算符 1.1.1          = 数据对象:泛指数据在内存的存储区域 左值:表示可以被更改的数据对象 右值:能赋给左值的量 1 ...

  7. 2_C语言中的数据类型 (二)进制

    1.1       二进制数.位.字节与字 我们习惯于十进制的数:10,12等 一个位只能表示0,或者1两种状态,简称bit,一个位是一个bit 一个字节为8个二进制,称为8位,简称BYTE,8个比特 ...

  8. 2_C语言中的数据类型 (十)while、for

    1          循环语句 1.1       while while(条件),如果条件为真,循环继续,条件为假,循环结束 while (1)..是死循环的写法 1.2       continu ...

  9. 2_C语言中的数据类型 (七)类型限定

    1.1       类型限定 1.1.1          const const是代表一个不能改变值的常量 1.1.2          volatile 代表变量是一个可能被CPU指令之外的地方改 ...

随机推荐

  1. Linux 系统的磁盘设备_【all】

    磁盘 ->RAID ->分区 ->格式化 ->挂载 基本的框架 a.硬盘的外部以及内部硬件结构,工作原理和读写原理b.RAID的划分(一块盘划分为一块或者多块的小虚拟磁盘,可以 ...

  2. 《C++ Primer Plus》读书笔记之八—对象和类

    第十章 对象和类   1.面向对象编程(OOP)的特性:抽象.封装和数据隐藏.多态.继承.代码的重用性. 2.指定基本类型完成了3项工作:①决定数据对象需要的内存数量.②决定如何解释内存中的位(lon ...

  3. win10 虚拟机 hyper-v 安装 centos 7

    一.win 10 企业版 自带虚拟机 hyper-v 1.控制面板-->程序和功能-->启用或关闭Windows功能 勾上 hyper-v 确定就ok了 2.安装成功后会发现在 左下角“开 ...

  4. MongoDB 多实例安装成服务

    转发自:https://www.cnblogs.com/GainLoss/p/6906937.html 1.在mongodb的官网上下载安装包 https://www.mongodb.com/down ...

  5. 《面向对象程序设计》c++第四次作业___calculator plus

    c++第四次作业 Calculator Plus git上的作业展示 Calculator 2.0 SourceCode in Git PS:这次作业orz感谢某同学用windows的dev c++帮 ...

  6. 关于第三次寒假作业之C++Calculator项目的情况:

    一.仓库地址: object-oriented: 二.作业要求: Calculator: 三.完成本次作业的情况及感受: 刚接触到这个题目的时候,自己就是那丈二的和尚,摸不着头脑,由于自己视频找得比较 ...

  7. MySQL 导出远程服务器数据库 为 sql文件

    MySQL 导出远程服务器sql文件 mysqldump -h192.168.1.111 –P3306 -uroot -ppassword --default-character-set=utf8 t ...

  8. ant jmeter jenkins 实现自动化测试

    编者按: 本文核心的关键是ant去调用build.xml 执行自动化测试任务. bulid.xml 文件的内容按照注释修改为你自己服务器相关信息. 配置完成后一定要手动在服务器上执行一次,确保你配置的 ...

  9. CF993E:Nikita and Order Statistics(FFT)

    Description 给你一个数组 $a_{1 \sim n}$,对于 $k = 0 \sim n$,求出有多少个数组上的区间满足:区间内恰好有 $k$ 个数比 $x$ 小.$x$ 为一个给定的数. ...

  10. numpy的操作

    import numpy as np ######################## # 索引 n1 = np.random.randint(0, 100, 10) # print(n1) ''' ...