1,操作符
关系操作符
大于:> 小于:< 相等:==
大于等于:>= 小于等于:<= 不相等:!=
条件操作符
? :
exp1?exp2:exp3
//如果exp1正确,则跳转到exp2,否则跳转到exp3
逻辑操作符
!:逻辑取反操作符
&&:逻辑与操作符,并且。都为真则真。
||:逻辑或操作符,或者。都为假则假。
2,循环
1,while循环
格式:
while(表达式)
语句;
注意:while后面的括号不可省!
while后面的表达式可以是任何类型的表达式,一般是条件或逻辑表达式。
原理:
先判断括号里面的表达式为不为真,如果是真的,则进行下面语句,然后再判断;如果是假的,则退出循环。当然,如果while循环中遇到了break或者continue或者goto或者return,也要退出。(这点以后遇到了再说)
如果最开始表达式为假,则一次也不执行!(和do-while不一样)
——通常需要一个循环控制变量,例如“i”;
2,do-while循环
形式:
do
语句;
while(表达式);
原理:首先执行循环体(黑框框里的语句部分)内的语句,然后才判断表达式的值是否为真....之后和while一样。
如果要执行多条语句时,需要使用复合语句,即大括号括起来。
3,for循环
形式:
for(表达式1;表达式2;表达式3)
语句;
关系式1:一般为赋值表达式,给循环控制变量赋初值
表达式2:一般为关系表达式或者逻辑表达式,作为循环控制条件
表达式3:一般为赋值表达式,给循环控制变量增量或减量
原理:
首先求表达式1的值,然后判断表达式2是否为真,如果为真,执行循环体(语句)部分,然后求表达式3的值。接下来判断表达式2是否为真...如果不为真,over
4,循环嵌套
注意:1,在嵌套的各层循环中,应使用复合语句,保证逻辑上的准确。
2,内外层循环控制变量不要同名
3,最好使用右缩进
4,不要交叉
下面附一个我写的猜数字游戏
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
void menu(){
printf("*****猜数字游戏~*****\n");
printf("******1 开始*********\n");
printf("******0 退出*********\n");
printf("*********************\n");
}
void game(){
int r = rand()%100+1;
int gress = 0;
int count = 10;
printf("猜数字游戏开始咯~,数字范围为1~100,你一共有10次机会,快来试试吧~\n");
while(count){
printf("请你输入一个数:");
scanf("%d",&gress);
if(gress < r){
printf("猜小了!\n");
}
else if(gress > r){
printf("猜大了!\n");
}
else if(gress == r){
printf("恭喜你,猜对了\n");
break;
}
count--;
if(count!=0){
printf("你还有%d次机会哦\n",count);
}
}
if(count == 0)
printf("次数用完咯,游戏失败,正确答案是%d\n",r);
}
int main(){
//0,菜单
//1,定义一个随机数
//2,用户输入
//3,判断
//4,结束
int input = 0;
srand((unsigned int)time(NULL)); //给随机数一个种子
do{
menu();
printf("请输入你的选择:\n");
scanf("%d",&input);
switch(input){
case(1): //如果输入1,则开始游戏
game();
break;
case(0)://如果输入0,则退出游戏
printf("退出游戏");
break;
default://如果输入其他值,则再问
printf("输入错误,请再次输入\n");
break;
}
}
while(input);//非0则循环(多次玩游戏),0则退出
return 0;
}