1、一般形式 if(表达式)表达式1 else 表达式2   :表达式成立(为真)则执行表达式1,否则执行表达式2.

适用范围:真假,对错,开关,对立面的条件

注意:如果if语句中只包括一条语句,可以省略{}但最好不要省略,如果有多条语句,一定要加{}

如果else不包含任何语句,则可以省略掉else

2、分支 if(表达式1){语句1}else if(表达式){语句2} else if(表达式3){语句3}。。。。。else(语句4)

表达式1成立立即执行语句1,否则判断表达式2,表达式2成立则立即执行语句2,否则判断表达式3,表达式3成立则立即执行语句3,表达式1,表达式2,表达式3都不成立,则执行语句4

分支if语句中条件是互斥的,不能有重复或互相包含的情况。如果有,必须重新理清程序思路。

if的条件是一段连续的范围,要把所有的情况都涵盖完

适用范围:条件互斥,没有相重合的条件,且条件都是一段连续的范围的时候用

3、嵌套形式:

if (表达式) {

if(表达式1)

{

语句1   //表达式和表达式1同时成立

}else{

语句2    //表达式成立且表达式1不成立

}

}else{

if (表达式2) {

语句3   //表达式不成立且表达式2成立

}else{

语句4    //表达式不成立且表达式2不成立

}

}

使用范围:适合逐层递进,从大到小细分条件,可用嵌套

三目运算符 表达式?语句1:语句2 等价于if(表达式)语句1 else 语句2;

1、使用if分支选择性输出两个数中最大的数字:

    int a=;
int b=;
if(a>b)
{
printf("");
}
else
{
printf("");
}

2、使用if语句判断一个从键盘输入的数字是奇数还是偶数

int a=;//定义变量时最好对变量进行初始化。
printf("请输入一个数字:");
scanf("%d",&a);
if(a%==)//对a除以2的余数进行判断,如果余数为0,则说明a为偶数,否则a为奇数。
{
printf("%d是一个偶数\n",a);
}
else
{
printf("%d是一个奇数\n",a);
}

3、数学中分段函数的C语言模型:如果x为0,则y的值为1000,如果x不为0,y的值为x分之1,

  float y=;  //定义变量
int x=; printf("请输入x:"); //输入
scanf("%d",&x); if(x!=) //判断
{
y=(float)/x; //对运算结果要强制转换为float型。
}
else
{
y=;
}

4、输入三个数,找出最大的并输出:

int a=;
int b=;
int c=;
int temp=; printf("请输入三个数:\n");
scanf("%d%d%d",&a,&b,&c); if(a>b)
{
temp=a;
}
else
{
temp=b;
}
if (temp>c) {
printf("max=%d\n",temp);
}
else
{
printf("max=%d\n",c);
}

5、三个数求最大值的第二种算法:先假设第一个数最大,然后和第二个数比较,得到最大的,最后与第三个数比较:

int a=;
int b=;
int c=;
int max=; printf("请输入三个数:\n");
scanf("%d%d%d",&a,&b,&c); max=a;//选择法找出三个数的最大值
if (max<b) {
max=b;
}
if (max<c) {
max=c;
} printf("最大数是%d",max);

6、判断一个两位数个位是奇数且十位是偶数:首先判断这个数时两位数,再对后续条件进行判断

  int a=;

    printf("输入一个数:");
scanf("%d",&a); if (a>&&a<&&a%==&&a/%==) {
printf("a是两位数,且个位是奇数,十位是偶数\n");
}
else
printf("a不符合条件\n");

7、判断一个输入的数字是否是整数:

   float a;

    scanf("%f",&a);
printf("输入的数字是%f",a); if (a-(int)a==)
{
printf("a是整数");
}
else
{
printf("a不是整数");
}

8、使用冒泡排序对四个数进行排序(不使用for循环)假设第一个数是最小的,然后与后续的数字逐一比较并移动到最后一个数字的位置,然后再使用第一个数字和最后一个数字之前的数字进行比较,得到第二小的数,并放在倒数第二的位置,重复循环直到得出最大的放在第一个的位置。

   int a=;
int b=;
int c=;
int d=;
int tmp=; printf("请输入四个数字:");
scanf("%d%d%d%d",&a,&b,&c,&d); if (a<b) {
tmp=b;
b=a;
a=tmp;
}
if (b<c) {
tmp=c;
c=b;
b=tmp;
}
if (c<d) {
tmp=d;
d=c;
c=tmp;
} if (a<b) {
tmp=b;
b=a;
a=tmp;
}
if (b<c) {
tmp=c;
c=b;
b=tmp;
}
if (a<b) {
tmp=b;
b=a;
a=tmp;
} printf("从大到小是%d,%d,%d,%d\n",a,b,c,d);

9、根据商品价格打折条件对应付款进行计算:如果三种商品的价格中有一个超过50或者三个商品价格之和超高100,则对总价格打折扣85%。

   float aprice,bprice,cprice;
float sumprice; printf("请输入三种商品价格:");
scanf("%f%f%f",&aprice,&bprice,&cprice); if (aprice>||bprice>||cprice>||aprice+bprice+cprice>) {
sumprice=(aprice+bprice+cprice)*(-0.15);
}
else sumprice=aprice+bprice+cprice; printf("应付钱数为%.1f\n",sumprice);

10、使用分支if语句确定三个数中最大的数:

int a,b,c,m;
scanf("%d%d%d",&a,&b,&c); if (a>=b&&a>=c) {
m=a;
}
else if (b>=a&&b>=c){
m=b;
}
else m=c; printf("最大值为%d\n",m);

11、使用嵌套if语句找出三个数中最大的数

int a,b,c,m;

    scanf("%d%d%d",&a,&b,&c);

    if (a>b) {
if (c>a)
m=c;
else
m=a;
}else{
if(c>b)
m=c;
else
m=b;
} printf("最大的是:%d\n",m);

12、使用三目运算符求三个数中最大的数,方法一:

   int a,b,c,m;

    scanf("%d%d%d",&a,&b,&c);

    m=(((a>b)?a:b)>c?((a>b)?a:b):c);

    printf("最大值是%d\n",m);

13、使用三目运算符求三个数中最大的数,方法二:

  int a,b,c,m;
scanf("%d%d%d", &a, &b, &c);
m = a;
m = m > b ? m : b;
m = m > c ? m : c;
  printf("最大值是%d\n",m);

14、使用三目运算符求三个数中最大的数,方法三:

  int a,b,c,m;
scanf("%d%d%d", &a, &b, &c);
m = (a>=b && a>=c) ? a : (b>=a && b>=c ? b : c);
  printf("最大值是%d\n",m);

15、使用三目运算符求三个数中最大的数,方法四

  int a,b,c,m;
scanf("%d%d%d", &a, &b, &c);
m = a>=b ? (a>=c ? a : c) : (b>=c ? b : c);
  printf("最大值是%d\n",m);

C语言-if语句的更多相关文章

  1. [SQL]SQL语言入门级教材_SQL语言基本语句介绍(四)

    SQL语言基本语句介绍 • 表的建立 关系数据库的主要特点之一就是用表的方式组织数据.表是SQL语言存放数据.查找数据以及更新数据的基本数据结构.在SQL语言中,表有严格的定义,它是一种二维表,对于这 ...

  2. php入门 数据类型 运算符 语言结构语句 函数 类与面向对象

    php PHP-enabled web pages are treated just like regular HTML pages and you can create and edit them ...

  3. OpenGL ES着色器语言之语句和结构体(官方文档第六章)内建变量(官方文档第七、八章)

    OpenGL ES着色器语言之语句和结构体(官方文档第六章) OpenGL ES着色器语言的程序块基本构成如下: 语句和声明 函数定义 选择(if-else) 迭代(for, while, do-wh ...

  4. 零基础逆向工程12_C语言06_switch语句反汇编

    12_C语言06_switch语句反汇编 switch语句反汇编 测试环境:VC++6.0 分支少于4的时候没有意义,编译器会生成类似if...else之类的反汇编,不超过三个分支,不会生成索引表. ...

  5. R语言Switch语句

    R语言Switch语句 switch语句允许一个变量值的列表来平等进行测试.每个值被称为一个条件(情况),变量被接通检查每个条件(情况). 语法 在R语言中创建switch语句的基本语法是: 以下规则 ...

  6. C语言中语句的跨行支持总结

    C语言中语句的跨行支持总结: 预处理一行写不下: 把一个预处理指示写成多行要用""续行,因为根据定义,一条预处理指示只能由一个逻辑代码行组成. 正常程序一行写不下: 把C代码写成多 ...

  7. go语言循环语句 for

    Go语言中的循环语句只支持for关键字,而不支持while和do-while结构. sum := 0 for i := 0; i < 10; i++ { sum += i } 无限循环的写法: ...

  8. go语言选择语句 switch case

    根据传入条件的不同,选择语句会执行不同的语句.下面的例子根据传入的整型变量i的不同而打印不同的内容: switch i { case 0: fmt.Printf("0") case ...

  9. (旧)子数涵数·C语言——条件语句

    首先,我们讲一下理论知识,在编程中有三种结构,分别是顺序结构.条件结构.循环结构,如果用流程图来表示的话就是: 那么在C语言中,如何灵活运用这三种结构呢?这就需要用到控制语句了. 而条件语句便是控制语 ...

  10. Go 语言 goto 语句

    Go 语言的 goto 语句可以无条件地转移到过程中指定的行. goto语句通常与条件语句配合使用.可用来实现条件转移, 构成循环,跳出循环体等功能. 但是,在结构化程序设计中一般不主张使用goto语 ...

随机推荐

  1. Linux系统编程读书笔记

    文件I/O模型 Linux的哲学思想,一切皆文件,这也是Linux文件操作的方便之处.系统调用不会分配缓冲区用以返回信息给调用者.所以必须提前分配大小合适的缓冲区并将缓冲区指针传递给系统调用. 1.o ...

  2. 把APP做成libary的注意事项

    首先把build.gradle(app里的),里面改成这样 apply plugin: 'com.android.library'然后删掉applicationId这一行 注意,千万不能用注解,要把所 ...

  3. the.book.of.gimp.pdf文字不显示

    逆天了,不是中文也不显示. https://bugs.freedesktop.org/show_bug.cgi?id=70529 说要升级libfreetype,可是已经是wheezy最新了,其他不稳 ...

  4. Redis hash 类型及操作

    原文:http://blog.sina.com.cn/s/blog_5f044a4d0102v01k.html Redis hash是一个string类型的field和value的映射表.它的添加.删 ...

  5. Not a million dollars ——a certain kind of ingenuity, discipline, and proactivity that most people seem to lack

    原文:http://ryanwaggoner.com/2010/12/you-dont-really-want-a-million-dollars/a certain kind of ingenuit ...

  6. islands打炉石传说<DP>

    islands最近在完一款游戏"炉石传说",又名"魔兽英雄传".炉石传说是一款卡牌类对战的游戏.游戏是2人对战,总的来说,里面的卡牌分成2类,一类是法术牌,另一 ...

  7. Android ART

    这几天在做一个项目时需要在Android中使用OSGi框架(Apache Felix),于是在一个android 4.4.2 版本系统的某品牌的平板上实验.实验内容很简单:把felix包里的felix ...

  8. linux操作命令实验

    实验内容:文件操作与用户操作实验 实验设备(环境):电脑.Vmware WorkStation 实验步骤: 一.创建新用户bob 目的:练习useradd命令 二.为新用户bob设置口令 目的:练习p ...

  9. HTML之禁止输入文本

    一个文本框,禁止输入文本有2个方式,一个是利用readonly ,一个是利用 disabled. 那么两者虽然目的都可以达到,但是从表现上来看disabled会显得更加的直观,为什么这么说. 请看截图 ...

  10. PS2键盘 + LCD12864 实验

    本实验是通过LCD12864来显示键盘上被按下的按键,实验比较简单,在LCD12864固定的DDRAM地址上显示,缺点就是不能保存上一次被按的内容,后者会覆盖掉前面,所以屏上仅有一个字符显示.保存上一 ...