博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
2_C语言中的数据类型 (九)逻辑运算符与if语句、switch、条件运算符?、goto语句与标号...
阅读量:5744 次
发布时间:2019-06-18

本文共 4589 字,大约阅读时间需要 15 分钟。

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 
int main01(void){ int a, b; a = 10; b = 30; int i = a == b;//==是判断两个变量是否相等 i = 3 < 5 && 3 == 2; i = 3 <= 5 && 3 != 2; i = 1 == 3 || 3 < 7; i = !(3 > 5 || (a = b)); i = !a; a = 0; i = !a; i = !(a != b); printf("i = %d\n", i); return 0;}//int main()一个函数在C语言里面,如果只是空(),代表这个函数可以有参数,也可以没有参数//int main(void)如果是(void),就是明确的表达,没有任何参数int main03(){ int a = 3; int b = 5; if (a != b && b > 10) { printf("hello world\n"); } if (0) { printf("true\n"); } else { printf("false\n"); } return 0;}int main(){ int a = 0; int b = 0; 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 0;}

 

#include 
int main01(void){ int a = 0; int b = 0; char c = 0; 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 == 0) { printf("error\n"); }else { printf("a / b = %d\n", a / b); } }else { printf("error\n"); } return 0;}int main02(){ int i = 1; 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"); } return 0;}int main03(){ int i = 10; if (i == 0) { printf("i = 0\n"); } else if (i == 1) { printf("i = 1\n"); } else if (i == 2) { printf("i = 2\n"); } else if (i == 3) { printf("i = 3\n"); } else if (i == 4) { printf("i = 4\n"); } else { printf("error\n"); } return 0;}int main04(void){ int a = 0; int b = 0; char c = 0; 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 0: printf("error\n"); break; default: printf("a / b = %d\n", a / b); } break; default: printf("error\n"); } return 0;}int main(){ goto end;//无条件的跳转到一个标号去执行 int a = 0; int b = 0; 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 0;}

资料来源:传智播客 仅供学习研究

转载于:https://www.cnblogs.com/wuchuanying/p/6341564.html

你可能感兴趣的文章
shiro初步 shiro授权
查看>>
上云就是这么简单——阿里云10分钟快速入门
查看>>
MFC多线程的创建,包括工作线程和用户界面线程
查看>>
我的友情链接
查看>>
FreeNAS8 ISCSI target & initiator for linux/windows
查看>>
cvs文件提交冲突解决方案
查看>>
PostgreSQL数据库集群初始化
查看>>
++重载
查看>>
Rainbond 5.0.4版本发布-做最好用的云应用操作系统
查看>>
nodejs 完成mqtt服务端
查看>>
在ASP.NET MVC 中获取当前URL、controller、action
查看>>
Spring IoC容器初的初始化过程
查看>>
sql server 触发器
查看>>
[工具]前端自动化工具grunt+bower+yoman
查看>>
自动化测试之WatiN(2)
查看>>
关于完成生鲜电商项目后的一点总结
查看>>
noip2012 普及组
查看>>
第二阶段 铁大Facebook——十天冲刺(10)
查看>>
Java判断是否为垃圾_Java GC如何判断对象是否为垃圾
查看>>
多项式前k项和java_多项式朴素贝叶斯softmax改变
查看>>