小白入门C语言switch语句及其循环操作

本文详细介绍了C语言中的switch语句和循环结构,包括while、do...while和for循环。通过实例展示了如何使用这些结构进行条件判断和重复执行任务,如实现星期转换和数字累加。同时,文章提及了循环控制的关键字如break和continue,并给出了九九乘法表的实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、switch语句

  • switch是另外一种选择结构的语句,用来代替简单的、拥有多个分枝的if else语句,基本格式如下:
switch (表达式)
{
  case 整型数值1: 语句1;
  case 整型数值2: 语句2;
  ......
  case 整型数值n: 语句n;
  default: 语句n+1;
}
  • 它的执行过程是:
    ①、首先计算表达式的值,假设为value
    ②、从第一个case开始,比较value整型数值1,如果它们相等,就执行冒号后面的所有语句,也就是从语句1一直执行到语句n+1,而不管后面的case是否匹配成功。
    ③、如果value整型数值1不相等,就跳过冒号后面的语句1,继续比较第二个case、第三个case……一旦发现和某个整型数值相等了,就会执行后面所有的语句。假设 value整型数值5相等,那么就会从语句5一直执行到语句n+1
    ④、如果直到最后一个整型数值n都没有找到相等的值,那么就执行default后的语句 n+1
  • 需要重点强调的是,当和某个整型数值匹配成功后,会执行该分支以及后面所有分支的语句。
#include <stdio.h>
 
int main()
{
  int    day=0;   // 定义一个整数变量用于接受键盘输入的数字
 
  printf("请输入0-6之间的数字:");    // 提示用户输入
  scanf("%d",&day);              // 接受用户从键盘输入的数据
 
  switch (day)
  {
    case 0: printf("星期天\n");
    case 1: printf("星期一\n");
    case 2: printf("星期二\n");
    case 3: printf("星期三\n");
    case 4: printf("星期四\n");
    case 5: printf("星期五\n");
    case 6: printf("星期六\n");
    default: printf("输入错误。\n");
  }
}
  • 运行结果:
    在这里插入图片描述

(一)、注意事项

  • case后面必须是整数和字符,或者是结果为整数和字符的表达式,但不能包含任何变量。请看下面的例子。
switch (result)
{
  case 10:  printf("..."); break;    // 正确,整数
  case 8+9:  printf("..."); break;    // 正确,表达式8+9==17是整数
  case '5':  printf("..."); break;    // 正确,字符可以转换为整数
  case 'A':  printf("..."); break;    // 正确,字符可以转换为整数
  case 'A'+10:  printf("..."); break;    // 正确,字符可以转换为整数
  case 3.14:  printf("..."); break;    // 错误,不能为小数
  case ii:  printf("..."); break;    // 错误,不能采用变量
}
  • default不是必须的。当没有 default时,如果所有case都匹配失败,那么就什么都不执行。

二、while循环

  • while循环的一般形式为:
while (表达式)
{
  语句块
}
  • 意思是,先计算表达式的值,当值为真时(非0即是真),执行语句块,执行完语句块后,回到循环首部再次计算表达式的值,如果为真,又执行一次语句块……,这个过程会一直重复,直到表达式的值为假,就不再执行语句块
  • 循环也常常出现在我们的生活中,以海贼王船员登场为例。
// 海贼王船员已准备出场

 while (是否有未出场的海贼王船员)
 {
   //判断海贼王船员的名字
   //判断海贼王船员的绝技
 }
  • 海贼王船员就是一个循环,是否有未出场的海贼王船员是循环首部要判断的条件,它的取值会随着循环次数的增加而改变,判断海贼王船员的名字、判断超女的绝技,随着循环次数的增加,全部的海贼王船员已出场,循环体不再执行。

三、do while循环

  • do while循环的一般形式为:
do
{
  语句块
}  while (表达式)
  • do while先执行一次循环,然后再判断表达式的值,如果为真,再执行一次循环体,如此重复下去。

四、while循环的应用

#include<stdio.h>
int main()
{
  int times = 0;//记录用户输入数据的次数
  int value = 0;//用户每次从键盘输入的数据
  int sum = 0;//记录用户输入数据的和

  while(sum < 5000){
    printf("请输入数字:");//如果数字小于5000,进入循环
    scanf("%d",&value);//接受用户从键盘输入的数据
    
    times++;
    sum = sum + value;  
  }
  printf("您一共输入了%d个数据,和为%d。\n",times,sum);
}
  • 运行结果:
    在这里插入图片描述

五、for循环

  • for循环的一般形式为:
    ①、for循环开始时,会先执行语句1,而且在整个循环过程中只执行一次语句1。
    ②、接着判断表达式的条件,如果条件成立,就执行一次循环体中的语句块。
    ③、语句块执行完后,接下来会执行语句2。
    ④、重复第②步和第③,直到表达式的条件不成立才结束for循环。
for (语句1;表达式;语句2)
{
  语句块
}
  • 注意:
    ①、在for循环中,语句1、表达式和语句2都可以为空,for (;;)等同于while (1)。
    ②、continue和break两个关键字也可以用在for循环体中。
  • for循环一般与计数器一起使用。例如:把1到100之间的数值累加起来。
#include<stdio.h>
int main()
{
  int i = 1;//用于for循环的计数器
  int sum = 0;//记录1到100的累积值
  
  for(i = 1; i<=100; i++){
    sum = sum + i;
  }
  printf("1到100的累积值为%d。\n",sum);//5050
}
  • 采用一个for循环,实现一个九九乘法表。
#include<stdio.h>
#include<string.h>
int main()
{
  int i;
  int j;
  for(i = 1;i <= 9;i++){
    for(j = 1;j <= i; j++){
      printf("%d * %d = %-2d ",j,i,i*j);
    }
    printf("\n");
  }
}
  • 运行结果:
    在这里插入图片描述
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值