C语言基础 — ( 选择程序设计[ 选择结构、条件判断 ] )_条件选择编程

本文介绍了C语言中的选择结构,重点阐述了if语句的不同形式、嵌套结构以及switch语句的使用,帮助读者理解如何根据条件执行不同操作,提高编程效率。
摘要由CSDN通过智能技术生成

前言

在顺序结构中,各语句是按自上而下的顺序执行的,执行完上一个语句就自动执行下一个语句,是无条件的,不必作任何判断。这是最简单的程序结构。实际上,在很多情况下,需要根据某个条件是否满足来决定是否执行指定的操作任务,或者从给定的两种或多种操作选择其一。这就是选择结构要解决的问题。


一、选择程序简介

由于程序处理问题的需要,在大多数程序中都会包含选择结构,需要在进行下一个操作之前先进行条件判断。
C语言有两种选择语句:
(1) if 语句,用来实现两个分支的选择结构;
(2) switch 语句,用来实现多分支的选择结构。

二、if 语句的选择结构

2.1、if 语句的一般形式如下:

if (表达式) 语句1
[ else 语句2]
if 语句中的“表达式”可以是关系表达式、逻辑表达式,甚至是数值表达式。其中最直观、最容易理解的是关系表达式。所谓关系表达式就是两个数值进行比较的式子。在上面 if 语句的一般形式中,方括号内的部分(即 else子句)为可选的,既可以有,也可以没有。
语句1和语句2可以是一个简单的语句,也可以是一个复合语句,还可以是另一个 if 语句
(即在一个 if 语句中又包括另一个或多个内嵌的 if语句)。
根据 if语句的一般形式,if 语句可以写成不同的形式,最常用的有以下3种形式:
(1) if (表达式) (没有 else子句部分)
语句 1
(2) if (表达式) (有 else子句部分)
语句 1
else
语句 2
(3) if (表达式 1) (在 else部分又嵌套了多层的 if 语句)
语句 1
else if (表达式 2)
语句 2
else if(表达式 3)
语句 3

else if(表达式 m)
语句 m
else
语句 m+1

说明:
(1)整个 if 语句可以写在多行上,也可以写在一行上。
如:
if(x>0) y=1;else y = -1;
但是,为了程序的清晰,提倡写成锯齿形式。
(2)一般形式(3)中“语句1”语句2”语句 m”等是 if 语句中的“内嵌语句”。它们是 if 语句中的一部分。每个内嵌语句的末尾都应当有分号,因为分号是语句中的必要成分。
如: if (x>0)
y = 1; //语句末尾必须有分号
else
y = -1; //语句末尾必须有分号
不能写成:
if(x>0) y = 1 else y= -1; //“语句1”的末尾缺少分号
如果无此分号,则出现语法错误。
(3) if 语句无论写在几行上,都是一个整体,属于同一个语句。不要误认为 if 部分是一个语句, else 部分是另一个语句。不要一看见分号,就以为是 if 语句结束了。在系统对 if 语句编译时,若发现内嵌语句结束(出现分号),还要检查其后有无 else,如果无 else,就认为整个 if 语句结束,如果有else,则把 else 子句作为 if 语句的一部分。注意 else 子句不能作为语句单独使用,它必须是 if语句的一部分,与 if 配对使用。

(4)“语句1”语句2”….“语句m”可以是一个简单的语句,也可以是一个包括多个语句的复合语句。注意:复合语句应当用花括号括起来。
(5)内嵌语句也可以是一个 if 语句,它也包含else部分。
(6)在 if 语句中要对给定的条件进行检查,判定所给定的条件是否成立。
判断的结果是一个逻辑值 “是” 或 “否” 。

2.2、if 语句的选择嵌套:

在 if 语句中又包含一个或多个 if 语句称为 if 语句的嵌套(nest)。
其一般形式如下:
if()
if() 语句 1
else 语句 2
else
if() 语句 3
else 语句 4

应当注意 if 与 else 的配对关系。else 总是与它上面的最近的未配对的 if 配对。

三、switch 语句的选择结构

if 语句只有两个分支可供选择,而实际问题中常常需要用到多分支的选择。
当然这些都可以用嵌套的 if 语句来处理,但如果分支较多,则嵌套的 if 语句层数多,程序冗长而且可读性降低。C语言提供switch 语句直接处理多分支选择。
switch 语句是多分支选择语句。
switch语句的一般形式如下:

switch(表达式)
{
case 常量1:语句 1
case 常量2:语句 2

case 常量n:语句 n

img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上大数据知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

需要这份系统化资料的朋友,可以戳这里获取

比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新**

需要这份系统化资料的朋友,可以戳这里获取

  • 22
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值