C语言控制语句:选择结构(分支结构)

本篇文章重点介绍C语言中选择(分支)结构的用法简介以及相关实例。

1.if 语句

if 是最基础的分支语句(branching statement),或选择语句(selection statement),可以简单的将if语句理解为一个交叉点,程序在两条分支中选择一条执行。

语法

if( expression )
   statement

如果表达式(expression)为真(非0),那么程序将执行statement,否则跳过statement。

Created with Raphaël 2.2.0 Start expression action End yes no

if中的statement 可以是一条简单语句也可以是由花括号括起来的复合语句。

if(a>b)
  printf("%d",a);	//简单语句
 
if(a>b)
{				//复合语句
	b++;
	printf("%d%d",a,b);
}

2.if else 语句

if 语句可以让程序选择一条语句执行或者跳过。此外C还提供了if else语句让程序在两条(段)语句之间进行选择(与双目运算符? : 类似)

语法

if (expression)     
program statement 1 // expression 为真则执行此条语句
else
program statement 2 //expression 为假则执行此条语句

//与之类似的双目运算符
condition ? expression1 : expression2 //condition 为真返回expression 1,为假返回expression 2
Created with Raphaël 2.2.0 Start expression action1 End action2 yes no

if else 嵌套(Nested)

程序可以按照顺序从上到下对嵌套的的if else 语句依次进行判断,如果没有花括号,那么每一个else对应着它上方离它最近的if。

if (expression 1)
	program statement 1
	else
		if (expression 2)
			program statement 2
			else
				if (expression 3)
					program statement 3
					else
						program statement 4


3.双目运算符(条件运算符:conditional expression)

双目运算符可以看做 if else 语句的一种便捷的表达方式,其形式如下

condition ? expression1 : expression2

如果condition为真,则该表达式的值与expression1的相同,反之则与expression2的相同。

Example
(5 > 3) ? 1 : 2 值为1
(5 < 3) ? 1 : 2 值为2

4.Switch

4.1 switch介绍及语法

使用双目运算符和if语句可以很容易实现二选一程序的编写,但是如果我们需要进行多选一的话,if等语句明显略显吃力,此时我们引入Switch语句来方便我们编写代码。
switch 在圆括号中的表达式的值是一个整数值(包括char类型),case的标签也必须是整数类型(同样包括char)的常量或者常量表达式。
switch结构如下(其中break可以跳出switch,如果没有break语句,那么程序就会从匹配的case执行到switch的末尾):

switch (expression)
{
	case value1:
	program statement
	break;
	
	case value2:
	program statement
	break;
	
	case valueN:
	program statement
	break;
	
	default:
	program statement
	break;
}

switch 的 Flow chart

4.2 switch多重标签(case)

例如在统计单词中元音字母个数时,我们可以使用如下多重标签。

switch (ch)
        {
            case 'a' :
            case 'A' :  a_ct++;
                break;
            case 'e' :
            case 'E' :  e_ct++;
                break;
            case 'i' :
            case 'I' :  i_ct++;
                break;
            case 'o' :
            case 'O' :  o_ct++;
                break;
            case 'u' :
            case 'U' :  u_ct++;
                break;
            default :   break;
        }                    // end of switch
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

M.J.Yang

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值