一、while语句与do-while语句
1、while与do-while循环的语法结构
while循环:
while (判定表达式) {
执行语句;
}
do-while循环:
do{
执行语句
} while (判定表达式);
//判定表达式是while中执行语句的执行条件,如果表达式为真则执行,为假则不执行,c语言中数字0表示假,其他值表示真。
2、循环的运行
while循环与do-while循环的区别:while循环上来是先判断,do-while循环是上来就先执行执行语句,然后再判断,其它与while循环一样。
二、for循环
1、语法结构
2、for循环的运行
三、分支
1、常用符号:“ == ”判断相等符号(二目操作符,相等为真,反之为假)、“ != ”判断相等符号(二目操作符,不相等为真,反之为假)、“ && ”与符号(二目操作符,有假则假)、“ || ”或符号(二目操作符,有真则真)。
“ && ”计算规则:从左向右,如果左边表达式为假则不再计算右边,整体结果为假(返回值为0);如果左边为真
,再计算右边。
“ || ”计算规则:从左向右,如果左边表达式为真则不再计算右边,整体结果为真(返回值为1);如果左边为假
,再计算右边。
2、if语句
语法结构:
if(判断表达式)
{
执行语句;
}
示例:
3、switch语句
语法结构:
switch (表达式) {
case 值1:
// 执行代码块1
break;
case 值2:
// 执行代码块2
break;
case 值3:
// 执行代码块3
break;
default:
// 执行默认代码块
}
default 的作用是当表达式的值没有case对应时就从default这里开始执行。
示例:
4、break和continue
break执行时会跳过一个循环或跳出switch语句;
break在switch语句中的作用
没有break
有break:
可以看到case只是一个入口,只是switch开始执行的入口,而break就是switch的出口。
continue只用在循环语句中,作用是跳过一次循环
示例:
最后写一个小游戏
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include<time.h>
#include<stdlib.h>
void f(int n, int m)
{
int i = 0;
int a, b, c = 0;
a = n % 10; b = (n / 10)%10; c = n / 100;
if ( a== m % 10 || a== (m / 10)%10 || a==m % 100)
i++;
if (b == m % 100 || b == (m / 10)%10 || b == m % 100)
i++;
if (c == m / 10 || c == (m / 10)%10 || c == m / 100)
i++;
printf("对了%d个数字\n", i);
}
void game(int n)
{
int m, i = 0;
for (i; i < 8; i++)
{
scanf("%d", &m);
f(n, m);
if (m == n)
{
printf("猜对了\n");
break;
}
else if (m < n)
printf("猜小了\n");
else
printf("猜大了\n");
}
if (i == 8)
printf("失败\n");
}
int main()
{
int iput = 0;
srand(time(NULL));
do
{
printf("*********************\n");
printf("****** 1、游戏 ******\n");
printf("****** 0、退出 ******\n");
printf("*********************\n");
scanf("%d", &iput);
switch (iput)
{
case 0:
printf("退出\n");
break;
case 1:
printf("猜数字游戏\n");
printf("猜一个100到999的数\n");
game((unsigned int)rand()%899+ (unsigned int)100);
break;
default :
printf("错误,重新选择");
}
} while (iput);
return 0;
}