|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 Weabu 于 2022-5-14 18:12 编辑
代码1#include <stdio.h>
int main()
{
int ch;
int num, numa = 0;
printf("请输入一个英文句子:");
while ((ch = getchar()) != '\n')
{
if (ch == 'a' || ch == 'A')
{
num = num + 1;
break;
}
else if (ch == 'e' || ch == 'E')
{
num = num + 1;
break;
}
else if (ch == 'i' || ch == 'I')
{
num = num + 1;
break;
}
else if (ch == 'o' || ch == 'O')
{
num = num + 1;
break;
}
else if (ch == 'u' || ch == 'U')
{
num = num + 1;
break;
}
}
printf("其中:a(%d),\n", num);
return 0;
}
代码2:
#include <stdio.h>
int main()
{
int ch;
int num, numa = 0,nume=0,numi=0,numo=0,numu=0;
printf("请输入一个英文句子:");
while ((ch = getchar()) != '\n')
{
switch (ch)
{
case 'a':
numa=numa+1;
break;
case 'e':
nume=nume+1;
break;
case 'i':
numi=numi+1;
break;
case 'o':
numo=numo+1;
break;
case 'u':
numu=numu+1;
break;
}
num = num + 1;
}
printf("您输入的句子中,包含元音字母%d个!\n",num);
printf("其中:a(%d),e,(%d),i(%d),o(%d),u(%d)\n", numa,nume,numi,numo,numu);
return 0;
}
为什么我代码1用if语句不能实现代码2switch语句的功能,从输出来看代码1只执行了一次循环(代码1不完整)
你帖子第一个代码使用的是 if-else 分支,而 break 是退出最近一层 循环 或 switch 条件分支
因为你第一个代码,只有 while 循环,那么自然 break 退出是此循环,导致只执行一次循环就退出
你第二个代码使用 switch 分支,break 在里面的作用就是退出此 switch 分支结构,所以第二个代码不会直接退出 while 循环结构
|
-
这是需要实现的功能
|