if/else if 在使用时的细节区别

本文探讨了C语言中条件判断语句if/else if的使用细节,强调在循环中进行多条件判断时,使用else if而非多个if可以防止错误。通过举例说明,当输入一行字符并统计英文字符、数字、空格和其他字符数量时,多个if可能导致错误,因为else部分会被多次执行。建议使用if/else if结构以确保代码逻辑的正确性。

c语言中的条件判断细节问题:当在一次循环中进行多个条件判断的时候使用else if避免出错,用多个if可能会出错。
原因是if与多个else if是分枝情况,只要出现首次if或者else if条件满足,则执行该条代码,即使后续存在其他满足else if的条件也不会执行else if及else的内容;if与多个if是并列情况,会顺序执行,当执行完满足条件的if语句后,最后的else也会执行;
举例如下:
题目:输入一行字符,统计其中的英文字符,数字字符,空格和其他字符的个数。

#include<stdio.h>
#define N 80
int main()
{
	char s[N];
	int i=0,a=0, b = 0, c = 0, d = 0;
	printf("input a series of numbers:\n");
	gets(s);
	while (s[i] != '\0')
	{
		if (s[i] >= 'A'&&s[i] <= 'Z' || s[i] >= 'a'&&s[i] <= 'z')
			a++;
		else if (s[i] >= '0'&&s[i] <= '9' )
			b++;
		//if (s[i] = ' ')
		else if (s[i] ==32)
			c++;
		else 
			d++;
	
		i++;

	}
	printf("英文字符:%d个\t数字:%d个\t空格:%d个\t其他字符%d个\t",a,b,c,d);
	system("pause");

}

在这里插入图片描述
如果使用多个if进行并列判断,则运行出错。

#include<stdio.h>
#define N 80
int main()
{
	char s[N];
	int i=0,a=0, b = 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值