---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.注意点
只对最近的循环结构有效