今天学习了switch选择结构、while循环和do while循环
一、switch选择结构
1.机构
switch (数值)
{
case 数值1:
语句1;
break;
case 数值2:
语句2;
break;
default:
语句3;
break;
switch和case后面跟的都是数值
break:退出整个swith语句
如果case后面没有break,就会执行后面所有case中得语句,直到遇到break为止
2.基本使用
1>
#include <stdio.h>
int main(int argc, const char * argv[])
{
int a = 10;
//break:退出整个swith语句
//如果case后面没有break,就会执行后面所有case中得语句,直到遇到break为止
int b = 10;
switch (a) {
case 10:
printf("A\n");
// break;
b++;
case 5:
printf("B\n");//上面一行没有break,所以整个输出结果是A B,因为没有break退出,继续输出case:5语句。
// break;
b++;
case 0:
printf("C\n");
break;
default:
printf("D\n");
break;
}
printf("b的值是%d\n",b);//这里b由于没有break终止程序,所以b++一直执行,最终结果是b = 12;
return 0;
}
2>
#include <stdio.h>
int main(int argc, const char * argv[])
{
int c = '+';
int a = 10;
int b = 20;
//如果要在case后面定义新的变量,必须用大括号{}包住
switch (c) {
case '+':
{
int sum = a + b;
printf("和是%d\n",sum);
break;
}
case '-':
{
int minus = a - b;
printf("差是%d\n",minus);
break;
}
}
return 0;
}
3>输入一个整数score代表分数,根据分数输出等级(A-E)
#include <stdio.h>
int main()
{
// 提示用户输入数据
printf("请输入一个分数:\n");
// 定义变量存储数据
int score = 0;
// 接收数据
scanf("%d", &score);
// 判断等级,输出
switch (score/10) {
case 10:
case 9:
printf("A");
break;
case 8:
printf("B");
break;
case 7:
printf("C");
break;
case 6:
printf("D");
break;
default:
printf("E");
break;
}
return 0;
}
3.if和switch区别
1>if语句能完成的功能,switch并不一定能完成
int a = 10;
if (a > 10)
{
}
2>在有些情况下,if语句和switch语句可以互换
3>switch能完成的功能,if语句都能完成
二、while循环
1.结构
while(条件)
{
循环体
}
2.基本使用
1>
#include <stdio.h>
int main(int argc, const char * argv[])
{
//1.先确定需要重复执行的操作
//2.在确定约束条件
//3.定义一个变量记录做的次数
int count = 0;
while (count < 50) {
++count;
printf("做第%d次俯卧撑\n",count);
}
return 0;
}
2>
//continue用法
//continue只能使用在循环结构中,它的作用是跳过这一次循环,直接进入下一次循环
//continue可以在for循环,while循环、do-while循环中使用
#include <stdio.h>
int main(int argc, const char * argv[])
{
/*
//1.先确定需要重复执行的操作
//2.在确定约束条件
//3.定义一个变量记录做的次数
int count = 0;
*/
int count = 0;
while (count < 50) {
++count;
if (count%10 == 0)
{
//直接结束这一次循环体,进行下一次循环
continue;
}
printf("做第%d次俯卧撑\n",count);
}
return 0;
}
3> break 在 while 循环中的使用
#include <stdio.h>
int main(int argc, const char * argv[])
{
int count = 0;
while (count < 50) {
++count;
printf("做第%d次俯卧撑\n",count);
if (count == 20)
{
//直接从这次循环中退出,退出整个循环
break;
}
}
return 0;
}
#include <stdio.h>
int main(int argc, const char * argv[])
{
/*自己的方法
//1.提示用户输入正整数n
printf("请输入一个整数:");
//2.接受用户输入的整数n
int n, sum, i;
scanf("%d",&n);
//3.计算1+2+3+...+n的和
for (i = 0;i <= n ; ++i) {
sum += i;
}
printf("%d\n",sum);
*/
/*定义变量输入的整数是正整数方法一
//1.提示用户输入正整数n
printf("请输入一个整数:");
//2.接受用户输入的整数n
int n;
scanf("%d",&n);
//确保输入的数字是正整数
if (n <= 0) {
printf("非法输入\n");
return 0;
}
*/
// 定义变量输入的整数是正整数方法二
int n = 0;//一定要初始化
while (n <= 0) {
//1.提示用户输入正整数n
printf("请输入一个整数:");
//2.接受用户输入的整数n
scanf("%d",&n);
}
//3.计算1+2+3+...+n的和
int sum = 0;
int number = 0;//默认被加的数值
while (number < n) {
number++;
sum += number;//累加
}
printf("%d\n",sum);
return 0;
}
#include <stdio.h>
int main(int argc, const char * argv[])
{
//记录3的倍数的个数
int count = 0;
//记录当前检查的数值
int number = 0;
while (number < 100)
{
number++;
//说明number是3的倍数
if(number%3 == 0)
{
count++;
}
}
printf("1~100内3的倍数的个数:%d\n",count);
return 0;
}
6>while的使用注意事项
#include <stdio.h>
int main(int argc, const char * argv[])
{
/*
while (10) {
printf("哈哈哈哈\n");
}
*/
/*
int a = 10;
//while(a>0);死循环
while (a>0)
{
a--;
printf("哈哈哈\n");
}
*/
//最简单的死循环
while (1);
return 0;
}
三、do while循环
1.结构
do
{
}while)(条件);
2.基本使用
#include <stdio.h>
int main(int argc, const char * argv[])
{
int i = 0;
//这里while 和do while相同
/*
while (i < 5) {
i++;//5
}
do{
i++;
}while (i < 5);
*/
//这里的while 和 do while是不相同
/*
while (i <0){
i++;
}
do{
i++;
}while (i < 0);
*/
printf("i = %d",i);
return 0;
}
3.while和 do while的区别
while特点:如果一开始的条件不成立,永远不会执行循环体
do while特点:不管一开始的条件是否成立,至少会执行一次循环体