实际上,在很多情况下,需要根据某个条件是否满足来决定是否执行指定的操作任务,或者从给定的两种或多种操作选择其一,这就是选择结构要解决的问题。
c语言有两种选择语句:(1)if语句,用来实现两个分支的选择结构;(2)switch语句,用来实现多分支的选择结构。
#include
int main()
{
int a,b;
scanf("%d,%d",&a,&b);
if (a>b)
{
printf("%d",a);
}
if (a
5,3
5
PS C:\csay\cyuyan>
这是一个很简单的if语句用法,从键盘输入2个整数,比较2个数的大小,输出最大的数。
(1)if(表达式) 语句1
(2)if(表达式)
语句1
else
语句2
(3)if(表达式1) 语句1
else if (表达式2)语句2
else if (表达式3)语句3
......
大家可以根据它的一般形式编写一个自己的小程序,如果有问题小编可以帮你解答。
一般形式:
if()
if () 语句1
else 语句2
else
if () 语句3
else 语句4
给大家举一个阶跃函数的例子:
#include
int main()
{
int a,b;
scanf("%d",&a);
if (a<0)
{
b=-1;
}
else
if(a==0) b=0;
else b=1;
printf("a=%d,b=%d",a,b);
return 0;
}
-5
a=-5,b=-1
PS C:\csay\cyuyan>
C语言的6种关系运算符:
< 小于,> 大于 ,<= 小于等于,>= 大于等于,== 等于,!= 不等于。
用关系运算符将两个数值或数值表达式连式子叫关系表达式,例如a>b,a+b>b+c等,关系表达式的值是一个逻辑值,即真或假。
如果d=a>b,如果a>b为真,则关系表达式的值为1,然后将1赋值给d。
有3种逻辑运算符:与(AND),或(OR),非(NOT),在C语言种,不能在程序中直接用AND,OR,NOT作为逻辑运算符,而是用其他符号代替。
&& 逻辑与(AND) a&&b 如果a,b都真,则结果真,否则假
|| 逻辑或(OR) a||b a,b中有一个为真,则结果真,二者都为假时结果为假
! 逻辑非(NOT) !a a为假,!a为真,a为真,!a为假
&&和||为双目运算符,要求有2个运算对象,!为一目运算符,要求有一个运算对象
逻辑表达式的值是一个逻辑量真或假
例如 5>3&&8<4-!0 5>3为1,4-!0为3,8<4-!0 为0,所以1&&0结果为0
条件运算符由?和:2种符号组成,要求有3个操作对象,称为三目运算符,是C语言中唯一的三目运算符。
条件表达式的一般形式为
表达式1?表达式2:表达式3
例如 max=(a>b)?a:b 将a和b比较,如果a>b为真,将a赋值给max,否则将b赋值给max
switch语句可以通过if语句嵌套表示,switch是多分支选择语句。
其一般形式:
switch(表达式)
{
case 常量1 : 语句1
case 常量2 : 语句2
......
case 常量n : 语句n
default : 语句n+1
}
上面的表达式的类型为整数类型包括字符类型,dafault可有可无,当没有与switch表达式相匹配的case常量,流程转去执行default后面的语句;case标号次序不影响结果,每一个case后面的常量不能相同;一般情况下,在执行一个case过后,要用break跳出switch结构,default中可以不用加break;多个case标号可以共用一组执行语句。
#include
int main()
{
int a;
scanf("%d",&a);
switch (a)
{
case 1 : printf("hz\n");
break;
case 3 : printf("hzhz\n");
break;
case 6 : printf("hzhzhz\n");
break;
case 8 : printf("hzhzhzhz\n");
break;
default : printf("666666\n");
}
}
2
666666
PS C:\csay\cyuyan>
1
hz
PS C:\csay\cyuyan>
通过小编的不懈努力,终于把if和switch拉完了,带着大家学习了一边if和switch以及它们的注意事项,希望大家要勤加练习,有不懂的问题或者博客中有不对的地方可以留言小编。