当前位置: 首页> 游戏> 评测 > 设计软件基础课程学什么_上海知名网站建设公司_今日刚刚发生的新闻_西安百度关键词包年

设计软件基础课程学什么_上海知名网站建设公司_今日刚刚发生的新闻_西安百度关键词包年

时间:2025/7/12 10:57:05来源:https://blog.csdn.net/sobercq/article/details/146300403 浏览次数:0次
设计软件基础课程学什么_上海知名网站建设公司_今日刚刚发生的新闻_西安百度关键词包年

C语言分支结构详解:掌握if语句与关系操作符

C语言往期系列文章目录

往期回顾:

  1. C语言入门:解锁基础概念,动手实现首个C程序
  2. C语言概念之旅:解锁关键字,字符,字符串的秘密,揭秘语句和注释,程序员的宝藏
  3. C语言基础入门:数据类型、变量声明与创建详解
  4. C操作符详解,深入探索操作符与字符串处理
  5. 揭秘C语言输入输出内幕:printf与scanf的深度剖析

文章目录

  • C语言分支结构详解:掌握if语句与关系操作符
  • C语言往期系列文章目录
    • 前言
    • 一、分支结构:if语句
      • 1. 基本语法
      • 2. 双分支:if-else语句
      • 3. 多语句控制:代码块
      • 4. 嵌套if语句
      • 5. 悬空else问题
    • 二、关系操作符
      • 1. 操作符类型
      • 2. 使用注意


前言

C语言作为一门结构化的程序设计语言,其核心逻辑由顺序结构、选择结构(分支结构)和循环结构三大基础结构组成。这三种结构如同积木一般,能组合出任何复杂的程序逻辑。本文将重点解析分支结构的实现方式——if语句和switch语句,并深入探讨关系操作符的使用技巧,帮助大家掌握条件判断的核心机制。


一、分支结构:if语句

1. 基本语法

if 语句用于实现条件判断,其语法形式如下:

if (表达式) 语句;

​执行逻辑:若表达式结果为非0(真)​,则执行语句;若为0(假)​,则跳过该语句。

我们说表达式如果为真,语句执行,表达式为假,语句不执行。而在C语言中,0为假,非0表示真,也就是表达式的结果如果是0,则语句不执行,表达式的结果如果是不是0,则语句执行。

示例:判断一个整数是否为奇数

#include <stdio.h>int main() 
{int num = 0;scanf("%d", &num);if (num % 2 == 1)printf("%d是奇数\n", num);return 0;
}

在这里插入图片描述

2. 双分支:if-else语句

如果⼀个数不是奇数,那就是偶数了,如果任意一个整数,我们要清楚的判断是奇数还是偶数怎么表示呢?这里就需要 if…else… 语句了,语法形式如下:


if (表达式) 语句1;
else 语句2;

执行逻辑:表达式为真时执行语句1,否则执行语句2。

​示例:判断奇偶性

#include <stdio.h>
int main() 
{int num = 0;scanf("%d", &num);if (num % 2 == 1)printf("%d是奇数\n", num);elseprintf("%d是偶数\n", num);return 0;
}

练习题:
输入一个年龄,>=18岁就输出:成年,否则就输出:未成年

3. 多语句控制:代码块

默认情况下,if和else仅控制紧接的一条语句。若需执行多条语句,需用{}包裹形成代码块:
示例:

int main()
{int age = 0;scanf("%d", &age);if (age >= 18)printf("成年了\n");    printf("可以谈恋爱了\n");  else                      printf("未成年\n");printf("最好不要谈恋爱\n"); return 0;
}

为什么会报错呢?因为if 和else语句都默认只控制一条语句。所以我们想控制多条语句就可以用一个大括号括起来。

if (age >= 18) 
{printf("成年了\n"); printf("可以谈恋爱了\n"); 
} 
else 
{printf("未成年\n");printf("最好不要谈恋爱\n"); 
}

由这个大括号括起来的语句,叫复合语句,代码块。

4. 嵌套if语句

复杂逻辑需通过嵌套if实现分层判断。

示例1:要求输入一个整数,判断输入的整数是0,还是正数或者负数。

if (num > 0)printf("正数\n");
else if (num < 0)printf("负数\n");
elseprintf("零\n");

这是一种逻辑,当然我们也可以去使用嵌套if

    if (num == 0) {printf("输入的数字是0\n");} else {if (num > 0) {printf("输入的数是正数\n");  } else {printf("输入的数是负数\n");}}

示例2:要求输入⼀个整数,如果是正数,再判断是奇数还是偶数,并输出;如果不是正数则输出不是整数。

if (num > 0) 
{if (num % 2 == 1)printf("奇数\n");elseprintf("偶数\n");
}
else 
{printf("非正数\n");
}

练习题:

输入一个人的年龄
如果年龄<18岁,打印“少年”
如果年龄在18岁至44岁打印“青年”
如果年龄在45岁至59岁打印“中老年”
如果年龄在68岁至89岁打印“老年”
如果90岁以上打印“老寿星”

5. 悬空else问题

代码陷阱:else始终与最近的未匹配if配对,而非依赖缩进。

下述代码的输出结果是什么?

#include <stdio.h>int main() 
{int a = 0;int b = 2;if (a == 1) if (b == 2) printf("hehe\n");else printf("haha\n");    return 0;
}

很多初学者,上来以判断 a 是0,不等于1,那就执行 else 子句,打印 haha 但是当你去运行代码,输出的结果是:啥都不输出。

这就是悬空 else 的问题,如果有多个 if 和 else ,可以记住这样⼀条规则, else 总是跟最接近的 if 匹配。 上面的代码排版,让 else 和第⼀个 if 语句对齐,让我们以为 else 是和第⼀个if匹配的, *当 if语句不成立的时候,自然想到的就是执行 else 子句,打印 haha ,但实际上 else 是和第二个 if 进行匹配的,这样后边的 if…else 语句是嵌套在第一个 if 语句中的,如果第一个 if 语句就不成立,嵌套 if 和 else 就没机会执行了,最终啥都不打印。

#include <stdio.h>int main() {int a = 0;int b = 2;if (a == 1) {if (b == 2) {printf("hehe\n");}} else {printf("haha\n");}return 0;
}

只要带上适当的大括号,代码的逻辑就会更加的清晰,所以大家以后在写代码的时候要注意括号的使用,让代码的可读性更高。

二、关系操作符

1. 操作符类型

C语言提供6种关系操作符用于比较运算:

操作符含义
>大于
<小于
>=大于等于
<=小于等于
==相等
!=不相等

2. 使用注意

​返回值:关系表达式返回1(真)或0(假)。

​易错点:混淆==(判断相等)与=(赋值)。

if (a = 5) 
{ ... }   // 错误!将5赋值给a,表达式恒为真if (a == 5) 
{ ... }  // 正确判断

另⼀个需要避免的错误是:多个关系运算符不宜连用。

上面示例中,连续使用两个小于运算符。这是合法表达式,不会报错,但是通常达不到想要的结果,即不是保证变量 j 的值在 i 和 k 之间。因为关系运算符是从左到右计算,所以实际执行的是下面的表达式。

(i < j) < k

也就是 i 和 j 先比,比完后的结果再和k比。想要判断变量 j的值是否在 i 和 k 之间,应该使用下面的写法

i < j && j < k

关键字:设计软件基础课程学什么_上海知名网站建设公司_今日刚刚发生的新闻_西安百度关键词包年

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: