C语言——if语句

if语句

根据比较的结果,决定做,还是不做某些动作的语句。


一、条件

C语言把任何非零和非空的值假定为 true;把 0 或 null 假定为 false。

如果条件为 true,则运行语句;如果为 false,则跳过语句。

  1. 流程图
    请添加图片描述

  2. 条件中的运算符

  • 关系运算符:< <= > >= == !=

    注:< <= > >= 优先级高,== !=优先级低,结合方向自左向右

  • 逻辑运算符:&& || !

    例:判断ch是否为大写字母

    if(ch≥‘A’ && ch≤‘Z’)
    
  • 注意=与==的区别

    int a;if(a=2){...} 条件任何时候都为真

    if(a==2)不一定为真

二、if语句

一个if语句是由一个布尔表达式后跟一个或多个语句组成

  1. 格式

    if(boolean_expression)
    {
    		/**表达式为真时执行的语句**/
    }
    

    例:

    #include <stdio.h>
    int main ()
    {
    	int a=10;
    	if(a<=20)
    	{
    		printf(“a比20小”);
    	}
    	printf(“a=%d”,a);
    	return 0;
    }
    

if…else语句

(如果…,则…,否则的话…)

一个if语句后可跟一个可选的else语句,在条件为false时,else语句执行。


  1. 格式:

    if(boolean_expression)
    {
       /* 如果布尔表达式为真将执行的语句 */
    }
    else
    {
       /* 如果布尔表达式为假将执行的语句 */
    }
    
  2. 流程图
    请添加图片描述

    经典例题

       	#include <stdio.h>
       	int main()
       	{
       	     int age;
       	     printf(“请输入你的年龄:”);
       	     scanf("%d", &age);
       	     if(age>=18)
       		 {
       	      	printf(“恭喜,你已经成年\n”);
       		 }
       		 else
       		 {
       	        printf(“抱歉,你还未成年\n”);
       		 }
       		 return 0;
       	}
    

if…else if…else语句

用于测试多种条件
(如果…则…,否则如果…则…,否则…)


  1. 格式

    if(boolean_expression 1)
    {
       /* 当布尔表达式 1 为真时执行 */
    }
    else if( boolean_expression 2)
    {
       /* 当布尔表达式 2 为真时执行 */
    }
    else if( boolean_expression 3)
    {
       /* 当布尔表达式 3 为真时执行 */
    }
    else
    {
       /* 当上面条件都不为真时执行 */
    }
    
  2. 流程图

    请添加图片描述

  3. 注意事项

    • 一个if后可跟0或1个else,else必须在else if后
    • if后可跟0或多个else if
    • 一旦某个else if匹配成功,其他的else if或else不会执行
  4. 经典例题——判断输入是否能构成三角形,计算面积并判断类型

     #include <stdio.h>
     #include <math.h>
     int main()
     {
             float x , y , z;
             float n , area;
             printf("请输入三角形三边:\n");
             scanf("%f%f%f", &x , &y , &z);
             if ( x + y > z && y + z > x && x + z > y)
             {
                    n = ( x + y + z) / 2;
                    area = sqrt(n * (n - x) * (n - y) * (n - z));
                    printf("这个三角形面积为:%.2f\n", area);
                    if (x * x + y * y == z * z || y * y + z * z == x * x|| x * x + z * z == y * y)
                    	printf("这个三角形是直角三角形。\n");
                    else if (x == y && y == x)
                    	printf("这个三角形是等边三角形。\n");
                    else if (x == y || x == z || y == z)
                    	printf("这个三角形是等腰三角形。\n");
                    else
                    	printf("这个三角形是普通三角形。\n");
             }
             else
            	 printf("不能构成三角形,请重新输入。\n");
        
        return 0}
    

嵌套的if语句

在一个 if 或 else if 语句内使用另一个 if 或 else if 语句。


  1. 格式
     if( boolean_expression 1)
        {
           statement;
           if(boolean_expression 2)
           {
              statement;
           }
        }
    
  2. 经典例题 请添加图片描述

#include<stdio.h>
#include<math.h>
int main()
{
	float a,b,c,x,k,x1,x2;
	scanf("%f %f %f",&a,&b,&c); 
	if(a==0)
	{
		if(b!=0)
		{
			x=-c/b;
			printf("%f",x);
		}
		else
		{
			if(c==0)
			{
				printf("解为任意值"); 
			}
			else
			{
				printf("无解");
			}
		}
	}
	else
	{
		k=b*b-4*a*c;
		if(k>=0)
		{
			x1=(-b+sqrt(k))/(2*a);
			x2=(-b-sqrt(k))/(2*a);
			printf("有两个实根,x1=%f x2=%f",x1,x2);
		}
		else
		{
			printf("有两个虚根");
		}
	}
}
  • 8
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值