C语言深度解剖-关键字(7)

简介: C语言深度解剖-关键字(7)

switch case 语句

理解:

例:


#define _CRT_SECURE_NO_WARNINGS 1
#include 
int main()
{
  int day = 0;
  //任何具有判定能力的语法结构,都必须具备:判定+分支
  printf("please choose your day:>");
  scanf("%d", &day);
  switch (day)//整形或者整形表达式
  {
  case 1://case 用来进行判定功能
  printf("星期一\n");
  break;//break 用来进行分支功能
  case 2:
  printf("星期二\n");
  break;  
  case 3:
  printf("星期三\n");
  break;  
  case 4:
  printf("星期四\n");
  break;  
  case 5:
  printf("星期五\n");
  break;  
  case 6:
  printf("星期六\n");
  break;
  case 7:
  printf("星期日\n");
  break;
  default:
  printf("输入错误\n");
  }
  return 0;
}


这样我们输入几,输出的就是星期几。


如果:

#define _CRT_SECURE_NO_WARNINGS 1
#include 
int main()
{
  int day = 0;
  //任何具有判定能力的语法结构,都必须具备:判定+分支
  printf("please choose your day:>");
  scanf("%d", &day);
  switch (day)//整形或者整形表达式
  {
  case 1://case 用来进行判定功能
  printf("星期一\n");
  //break;//break 用来进行分支功能
  case 2:
  printf("星期二\n");
  //break;  
  case 3:
  printf("星期三\n");
  //break;  
  case 4:
  printf("星期四\n");
  //break;  
  case 5:
  printf("星期五\n");
  break;  
  case 6:
  printf("星期六\n");
  break;
  case 7:
  printf("星期日\n");
  break;
  default:
  printf("输入错误\n");
  }
  return 0;
}


输入:


输入:1

输出:


输出:

please choose your day:>1
星期一
星期二
星期三
星期四
星期五

补充:

写这个语句时一定要添加上default 语句,


非常重要,哪怕用不上:


例:


#define _CRT_SECURE_NO_WARNINGS 1
#include 
int main()
{
  int day = 0;
  //任何具有判定能力的语法结构,都必须具备:判定+分支
  printf("please choose your day:>");
  scanf("%d", &day);
  switch (day)//整形或者整形表达式
  {
  case 1://case 用来进行判定功能
  printf("星期一\n");
  break;//break 用来进行分支功能
  case 2:
  printf("星期二\n");
  break;  
  case 3:
  printf("星期三\n");
  break;  
  case 4:
  printf("星期四\n");
  break;  
  case 5:
  printf("星期五\n");
  break;  
  case 6:
  printf("星期六\n");
  break;
  case 7:
  printf("星期日\n");
  break;
  default:
  printf("输入错误\n");
  }
  return 0;
}

输入:


输入:8

输出:


输出:

please choose your day:>8
输入错误

深入理解:

建议不要用:


例:


#define _CRT_SECURE_NO_WARNINGS 1
#include 
int main()
{
  int day = 0;
  //任何具有判定能力的语法结构,都必须具备:判定+分支
  printf("please choose your day:>");
  scanf("%d", &day);
  switch (day)//整形或者整形表达式
  {
  case 1://case 用来进行判定功能
  printf("星期一\n");
  break;//break 用来进行分支功能
  case 2:
  {//如果想执行多条语句,要加{ }
  printf("星期二\n");
  printf("星期三\n");
  printf("星期四\n");
  printf("星期五\n");
  }
  break;  
  case 6:
  printf("星期六\n");
  break;
  case 7:
  printf("星期日\n");
  break;
  default:
  printf("输入错误\n");
  }
  return 0;
}

输入:


输入:2

输出:


输出:

please choose your day:>2
星期二
星期三
星期四
星期五

那如果想要多种情况执行同一条语句呢?


推荐:


例:

#define _CRT_SECURE_NO_WARNINGS 1
#include 
int main()
{
  int day = 0;
  //任何具有判定能力的语法结构,都必须具备:判定+分支
  printf("please choose your day:>");
  scanf("%d", &day);
  switch (day)//整形或者整形表达式
  {
  case 1:
  case 2:
  case 3:
  case 4:
  case 5:
  printf("周内\n");
  break;
  case 6:
  printf("星期六\n");
  break;
  case 7:
  printf("星期日\n");
  break;
  default:
  printf("输入错误\n");
  }
  return 0;
}


这样无论你输入1 2 3 4 5都会显示周内。


default 语句:

default 它一定要写在最后吗?


不,它放到哪里都可以,


只是我们更习惯放在最后,这样更符合语义。


case语句:

#define _CRT_SECURE_NO_WARNINGS 1
#include 
int main()
{
  const int a = 4;
  switch (a)
  {
  case 4:
  printf("is ok\n");
  }
  return 0;
}

因为用const 修饰后是常量,所以这段代码时编的过去的,


但是:


这种就不行,


一定要注意:



总结:


do、while、for 关键字

while

例:

#define _CRT_SECURE_NO_WARNINGS 1
#include 
int main()
{
  int count = 10;//循环条件初始化
  while (count > 0)//循环条件判定
  {
  printf("count = %d\n", count);
  count--;//循环条件更新
  }
  return 0;
}


for

例:


(比较推荐)一目了然


#include 
int main()
{
  for (int i = 0; i < 10; i++)
  {
  printf("i = %d\n", i);
  }
  return 0;
}

do while

例:


#include 
int main()
{
  int count = 10;//循环条件初始化
  do
  {
  printf("count = %d\n", count);
  count--;//循环条件更新
  } while (count > 10);//循环条件判断
  return 0;
}

各种死循环方法:

while

#include 
int main()
{
  while(1)
  {
  printf(".");
  }
  return 0;
}

for

#include 
int main()
{
  while (1)
  {
  int c = getchar();
  if (c == '#')
  {
    break;//结束循环
  }
  printf("%c\n", c);
  }
  printf("while end...\n");
  return 0;
}

do while

#include 
int main()
{
  do
  {
  printf(".");
  } while (1);
  return 0;
}

getchar

例:


#include 
int main()
{
  while (1)
  {
  int c = getchar();
  if (c == '#')
  {
    break;//结束循环
  }
  printf("%c\n", c);
  }
  printf("while end...\n");
  return 0;
}


输出:



我们发现有点奇怪,


我们只进行了一次换行,但是却换了两行,


因为我们输入字符的时候,按了一下回车,那个回车也被getchar接受了。


写在最后:

以上就是本篇文章的内容了,感谢你的阅读。


如果喜欢本文的话,欢迎点赞和评论,写下你的见解。


如果想和我一起学习编程,不妨点个关注,我们一起学习,一同成长。


之后我还会输出更多高质量内容,欢迎收看。


相关文章
|
1天前
|
存储 C语言
【C语言】数据:数据类型关键字
【C语言】数据:数据类型关键字
|
2天前
|
存储 编译器 C语言
c语言中static关键字的作用
c语言中static关键字的作用
|
2天前
|
编译器 C语言 C++
从C语言到C++③(第一章_C++入门_下篇)内联函数+auto关键字(C++11)+范围for+nullptr(下)
从C语言到C++③(第一章_C++入门_下篇)内联函数+auto关键字(C++11)+范围for+nullptr
9 0
|
2天前
|
存储 安全 编译器
从C语言到C++③(第一章_C++入门_下篇)内联函数+auto关键字(C++11)+范围for+nullptr(上)
从C语言到C++③(第一章_C++入门_下篇)内联函数+auto关键字(C++11)+范围for+nullptr
7 0
|
8天前
|
算法 C语言
C语言易混淆、简单算法、结构体题目练习、常见关键字总结-2
C语言易混淆、简单算法、结构体题目练习、常见关键字总结
|
8天前
|
算法 编译器 API
C语言易混淆、简单算法、结构体题目练习、常见关键字总结-1
C语言易混淆、简单算法、结构体题目练习、常见关键字总结
|
8天前
|
安全 编译器 C语言
C语言中的const关键字
C语言中的const关键字
18 2
|
8天前
|
程序员 C语言
在C语言中,typedef是一种用来创建新的数据类型名的关键字
在C语言中,typedef是一种用来创建新的数据类型名的关键字
11 0
|
8天前
|
存储 编译器 C语言
C语言的关键字
C语言的关键字
19 0
|
8天前
|
存储 编译器 C语言
c语言中的关键字
c语言中的关键字
10 0