分支与循环重要部分,容易遗忘

一、短路

短路 常见于逻辑操作符中。比如 逻辑与 &&逻辑或 ||
对于 逻辑与 && 来说,只要遇到表达式为假,整个表达式都为假,即后面的表达式不需要计算。
对于 逻辑或 || 来说,只要遇到表达式为真,整个表达式都是真,即后面的表达式不需要计算。
下面我们看两道例题。
例1:下面程序输出的结果是什么

#include <stdio.h>
int main()
{
	int i = 0, a = 0, b = 2, c = 3, d = 4;
	i = a++ && ++b && d++;
	printf("a = %d\n b = %d\n c = %d\nd = %d\n", a, b, c, d);
	return 0;
}

分析: 我们先来看这一部分 a++ && ++b && d++a++ 是先看 a 的值,再 a+1 ,所以第一个表达式的结果为 0 ,即 为假 ,故后面两个表达式都不需要计算。所以,a=1, b=2 , c=3 , d=4

例2:下面程序输出的结果是什么

#include <stdio.h>
int main()
{
	int i = 0, a = 0, b = 2, c = 3, d = 4;
	i = a++ || ++b || d++;
	printf("a = %d\n b = %d\n c = %d\nd = %d\n", a, b, c, d);
	return 0;
}

分析: a++ 为假,继续看下一个表达式,++b 为真,故这道题只计算前两个表达式。所以,a=1, b=3, c=3, d=4

二、switch语句的注意点

  1. switch 后的表达式必须是 整型表达式
  2. case 后的值必须是 整型常量表达式
  3. 注意 break 语句的使用,来实现分支效果

三、do while语句的使用场景

do while 语句是先执行一次语句,然后再进入循环体,也就是说 do while语句的表达式至少执行一次 ,所以通常用这个语句来判断数字的位数。
例如:

#include <stdio.h>
int main()
{
 int n = 0;
 scanf("%d", &n);
 int cnt = 0;
 do
 {
 cnt++;
 n = n / 10;
 } while (n);
 printf("%d\n", cnt);
 return 0;
}
之所以用do while语句,是因为 0 也是一位数,所以要从 1 开始记位数。

四、break和continue语句

break 语句是 永久地终止循环 ,即直接跳出循环,继续往下执行。
continue 语句是跳过本次循环中 continue 后面的语句。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值