switch 语句,while 循环,for 循环和do while循环

简介: switch 语句,while 循环,for 循环和do while循环

switch 语句

switch 语句是⼀种特殊形式的 if…else 结构,⽤于判断条件有多个结果的情况。它把多重的 else if 改成更易⽤、可读性更好的形式。

例如:

#include<stdio.h>
int main()
{
    int n;
  switch(n)
  {
  case number:
  statement;
    case number:
  statement;
    case number://注意,case和后面的number中间有个空格
  statement;
  default:
  statment;//此处的number只能为整型数值
  }
   return 0;
}

上⾯代码中,根据表达式number 不同的值,执⾏相应的 case 分⽀。如果找不到对应的值,就执⾏ default 分⽀

输入一个0~7的数,输出“星期 * ”:

#include <stdio.h>
int main()
{
 int day = 0;
 scanf("%d", &day);
 switch(day)
 {
 case 1:
 printf("星期⼀\n");
 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;
 }
 return 0;
}

每⼀个 case 语句中的代码执⾏完成后,需要加上 break ,才能跳出这个switch语句,如果不加break,输出结果会不一样:

如果case的不同值有相同结果,就可以写成以下:

#include <stdio.h>
int main()
{
 int day = 0;
 scanf("%d", &day);
 
 switch(day)
 {
 case 1:
 case 2:
 case 3:
 case 4:
 case 5:
 printf("⼯作⽇\n");
 break;
 case 6:
 case 7:
 printf("休息⽇\n");
 break;
 default:
  printf("输入错误\n");
  break;
  }
 return 0;
}

如果输入数字8,就会执行default分支:

在 switch 语句中 case 语句和 default 语句是没有顺序要求的,只要你的顺序是满⾜实际需求的就可以。

while 循环

while 语句的语法结构和 if 语句⾮常相似。

但是也有着极大的区别,while语句是可以实现循环效果的:

if 语句

#include <stdio.h>
int main()
{
 if(1)
 printf("hehe\n"); //if后边条件满⾜,打印⼀次hehe
 return 0;
}

while 循环

/代码2
#include <stdio.h>
int main()
{
 while(1)
 printf("hehe\n"); //while后边的条件满⾜,死循环的打印hehe
 return 0;
}

while循环⾸先上来就是执⾏判断表达式,表达式的值为0,循环直接结束;表达式的值不为0,则执⾏循环语句,语句执⾏完后再继续判断,是否进⾏下⼀次判断。

输⼊⼀个正的整数,逆序打印这个整数的每⼀位

例如:

输⼊:1234,输出:4 3 2 1

输⼊:521,输出:1 2 5

#include <stdio.h>
int main()
{
 int n = 0;
 scanf("%d", &n);
 while(n)
 {
 printf("%d ", n%10);//此处输出的n%10就是n的个位数
 n=n/10;//去掉个位数的n再次返回执行
 }
 return 0;
}

for 循环

for 循环的使用频率是最高的。

for(表达式1;表达式2;表达式3)
语句;
此处的表达式1用于初始化,
表达式2用于⽤于循环结束条件的判断,
表达式3 ⽤于循环变量的调整

例如,用for 循环算出一百以内能整除3的数之和:

#include<stdio.h>
int main()
{
  int sum;
  for(int i=1;i<=100;i++){
    if(i%3==0){
      sum+=i;
    }
  }
  printf("%d",sum); 
  return 0;
}

do while 循环

while 和 for 这两种循环都是先判断,条件如果满⾜就进⼊循环,执⾏循环语句,如果不满⾜就跳出循环;⽽ do while 循环则是先直接进⼊循环体,执⾏循环语句,然后再执⾏ while 后的判断表达式,表达式为真,就会进⾏下⼀次,表达式为假,则不再继续循环。

在 do while 循环中先执⾏语句,执⾏完语句,在去执⾏判断表达式,判断表达式的结果是!=0,则继续循环,执⾏循环语句;判断表达式的结果==0,则循环结束。所以在 do while 语句中循环体是⾄少执⾏⼀次的,这是 do while 循环⽐较特殊的地⽅。

练习:

输⼊⼀个正整数,计算这个整数是⼏位数?

例如:

输⼊:1234 输出:4

输⼊:12 输出:2

#include <stdio.h>
int main()
{
 int n = 0;
 scanf("%d", &n);
 int cnt = 0;
 do
 {
 cnt++;//n即使是0,也是1位数,要统计位数的
 n = n / 10;
 } while (n);
 printf("%d\n", cnt);
 return 0;
}
相关文章
|
2月前
什么是 While 循环?
什么是 While 循环?
90 0
|
7月前
|
C语言
c循环
c循环
41 0
|
7月前
|
算法 C++
c++循环
c++循环
40 0
|
7月前
|
C++
C++ 循环
C++ 循环
45 0
|
7月前
while循环和do while循环有什么区别
while循环和do while循环有什么区别
87 0
|
C语言
C 循环
C 循环。
44 1
while循环和do while循环有什么区别?
while循环和do while循环有什么区别?
147 0
三个循环(C)
while语句:while(表达式){},先判断表达式,若符合,则执行循环内容,一个循环后再次判断表达式。
76 0
|
C语言
C 中的循环
C 中的循环
|
C语言 C++
C++——循环
C++——循环