C语言—switch、while、do while、for、break和countinue

来源:互联网 发布:8051 单片机内部实现 编辑:程序博客网 时间:2024/06/08 04:21


---switch语句


1.按照switch(数值)括号里面的数值进行判断执行的数值一样的那一条语句:

switch(数值)
{
case 数值1:语句1;break;
case 数值2:语句2;break;
default :语句3;break;
}

break退出整个switch语句,他会执行下面碰到的所有的case语句,直到碰到break为止。
如果要在case后面定义新的变量,必须用大括号{}包住,否则很可能出现作用域紊乱的情况。如:
switch (c) {
        case '+':
        {
            int sum = a + b;
            printf("和是%d\n", sum);
            break;
        }
            
        case '-':
        {
            int minus = a - b;
            printf("差是%d\n", minus);
            break;
        }
    }
2.switch练习

/*
 输入一个整数score代表分数,根据分数输出等级(A-E)(用两种方式)
 A:90~100 score/10 == 9、10
 B:80~89  score/10 == 8
 C:70~79  score/10 == 7
 D:60~69  score/10 == 6
 E:0~60   
 */

#include <stdio.h>

int main()
{
    int score = 100;
    
    switch (score/10) {
        case 10: // 100
        case 9: // 90+
            printf("A\n");
            break;
        case 8: // 80+
            printf("B\n");
            break;
        case 7: // 70+
            printf("C\n");
            break;
        case 6: // 60+
            printf("D\n");
            break;
        default:
            printf("E\n");
            break;
    }
       
    /*
     if和switch
     1> if语句能完成的功能,switch并不一定能完成
     int a = 10;
     if (a>100)
     {         }
     2> 在有些情况下,if语句和switch语句可以互换
     
     3> switch能完成的功能,if语句都能完成
     */   
    return 0;
}

---while(条件)

1.结构

while (条件)
 {
    循环体
 }
 
 运行原理:
 1>如果一开始条件就不成立,永远不会执行循环体
 2>如果条件成立,就会执行一次循环体,执行完毕,再次判断条件是否成立......
 
 break
 直接结束整个while循环
 
 continue
 结束当前的循环体,进入下一次循环体的执行

2.使用while的考虑步骤

1>先确定需要重复执行的操作
2>再确定约束条件
定义一个变量记录做的次数.如:
int count = 0;
while (count<50)

  count++;
  printf("做第%d次俯卧撑\n",count);
}

3.注意点

1>continue:调用此关键字结束此次循环立马开始下一次循环。
2>break:立马结束循环体,并不再循环。
如果一开始条件就不成立,永远不会执行循环体;若果条件成立,就会执行一次循环体,执行完毕,再次判断条件。

4.关于while的死循环

    1>int a = 10;
    while (a>0); 死循环
    while (a>0)
    {
        a--;
        printf("哈哈哈\n");
    }*/
    
    2> 最简单的死循环
      while(1);
5.关于while的练习
1>
/*
 提示用户输入一个正整数n,计算1+2+3+…+n的和
 */
#include <stdio.h>

int main()
{
    // 定义变量保存用户输入的整数
    int n = 0; // 一定要初始化
    
    while (n <= 0)
    {
        // 1.提示输入
        printf("请输入一个正整数:\n");
        
        // 2.接收输入
        scanf("%d", &n);
    }
    
    // 3.计算
    // (1 + n) * n / 2;
    // 定义变量保存和
    int sum = 0;
    int number = 0; // 默认被加的数值
    while (number < n)
    {
        number++;
        sum += number; // 累加
    }
     printf("%d\n", sum);
    return 0;
}

2>

/*设计一个函数,找出整型数组元素的最小值(C语言编程题)*/

/*编程思想:定义函数 int least(int *apple,int len)用*apple来接收用户输入的数组,将数组的第一个元素默认为最小值将其定义为n,然后将apple后面的元素依次与其比较,把较小的值赋给 n,通过函数调用将值返回*/

//1.包含头文件 <stdio.h>
#include<stdio.h>

//2.定义函数least用来计算数组中的最小元素
int least(int *apple,int len)
{
//3.定义整数n用来存放最小元素,先默认数组的第一个元素为最小值
int n = apple[0];
    
//4.用for语句来找到数组的最小元素
for(int i = 1;i<len;i++)
    {
        //5. 判断默认最小元素和数组元素的大小
        if(n>apple[i])
        {
          //6.将比较小的素族元素赋值给n
            n = apple[i];
   }
    }
    //7.返回最小元素
    return n;
}

//8.主函数main
int main()
{
//9.定义整数count用来存放用户输入的数组元素的数量
int count;
    
//10.告知用户该程序的作用
    printf("找出整型数组元素的最小值\n");
    
    //11. 提示用户输入数组的数量
printf("请输入数组的元素个数:\n");
    
//12.用来接收元素的数量
scanf("%d",&count) ;
    
//13.定义一个数组
    int a[count];
    
    //14.接收用户输入的数组
    for (int i = 0; i <count; i ++)
    {
        //15.提示用户应该输入第几个元素
        printf("请输入第%d个整型数据:\n", i + 1);
        //16.接收用户输入的元素
        scanf("%d",&a[i]);
    }
    //17.定义min用来存放最小元素
    int min = 0;
    //18.接收函数least(int *apple,int len)的返回值
    min = least(a,count);
    //19.输出最小元素
    printf("数组中的最小元素是%d\n",min);
    //20.函数正常退出
    return 0;

}


---do while循环

1.结构(先执行代码块,然后再判断条件是否成立)

while (条件)
 {
    
 }

do {
 
} while(条件);
 
2. while和do-while的区别
 1>很多情况下,while和do while可以互换
 
 2>while特点:如果一开始的条件不成立,永远不会执行循环体
 do while特点:不管一开始的条件是否成立,至少会执行一次循环体
 
 3>最好使用while

3.小练习
#include <stdio.h>

int main()
{
    int i = 0;   
    /*
    while (i<0)
    {
        i++; // 5
    }*/
    
    do {
        i++; // 5
    } while (i<0);
    
    printf("i=%d\n", i);
    return 0;
}

---for循环

1.结构
for( 语句1;条件 ;语句2 )
{
    循环体
}
语句1:初始化语句
语句2: 增量语句(执行完循环体后在执行的语句)

运行原理:
  1>for一开始就会执行一字语句1(整个for循环只会执行一次)
  2>判断条件是否成立,如果条件成立,就会执行一次循环体,然后就回执行语句2,再次判断条件是    
    否成立

for (int count;count < 50;count++)
{
     printf("做俯卧撑"\n);
}
2.for循环注意点:
1>不要随便在for()后面写分号
    for (int i=0; i<5; i++);
    {
        printf("哈哈\n");
    }*/
    
    /* 错误:变量a的作用域不明确
     如果要在循环体中定义新的变量,必须用大括号{}包住
    for (int i=0; i<5; i++)
     int a = 10;
    */

2>for最简单的死循环:for( ; ; ;);

3.嵌套循环的利用

例题:根据用户输入的正整数输出相应的*,例如输入5,则输出
*****
****
***
**
*

#include<stdio.h>
int main()
{
int a = 0;
while(a<=0){
printf("请输入一个正整数");
scanf("%i",&a);
}
for( int i=1;i<=a; i++)
{
printf("\n");
for(int j=1;j<=a-i+1;j++ )
{
printf("*");
}

}
return 0;
}


---关于选择结构和循环结构的总结

一、选择结构

1.if
1> 结构
if (条件) {

} else if (条件2) {

} else if (条件3) {

} else {
    
}

2> 特点
* 同一时刻,只有一个大括号里面的代码会被执行

2.switch
1> 结构
switch (数值)
{
    case 数值1:
        break;
    
    case 数值2:
        break;
    
    case 数值3:
        break;
    
    default:
        break;
}
2> 特点
1> 默认情况下,只有一个case后面的代码会被执行
2> 如果一个case后面没有break,而且这个case成立,就会按顺序执行后面所有case中的语句,直到遇到break为止
3> 如果要在case后面定义一个新的变量,必须用大括号{}包住

二、循环结构

1.while
1> 特点:如果一开始条件不成立,永远不会执行循环体
2.do while
1> 特点:不管条件是否成立,至少会执行一次循环体
3.for
4.选择
1> 一般优先使用for循环
2> 然后再考虑while
3> 最后再考虑do while

---break和countinue

break:
 1.使用场合
 1> switch语句:退出整个switch语句
 2> 循环结构:退出整个循环语句
   * while
   * do while
   * for
 2.注意点
 只对最近的循环结构有效
 
continue:
 1.使用场合
  循环结构:结束当前这次的循环体,进入下一次循环体
     * while
     * do while
     * for
 2.注意点
  只对最近的循环结构有效


0 0