第六课C++语言

今天老师带领我们学习了逻辑运算符:

首先定义一个变量为真假,使用bool,这种类型,结果只有true和false。也叫做布尔类型。

例:#include<stdio.h>

int main()

{bool a=true;

printf("%d",a);}

输出结果为1,相反如果是false,输出结果为0。

然后讲解了各种判断符号,包括:>,<,==和!=。判断符号和上面的关键字可以判断想要表达的式子是真还是假。

下面介绍了条件判断,也就是if ,格式一般为if( ),括号中加入定义变量的判断表达式,例如:if(a>20),这表示如果变量a大于20的情况下,需要XXXX。反之呢,使用else,这个关键字来表示a小于20的情况。切忌:一般在if 和else的后面不需要加入;。

那么,如何用if来设定一个区间呢?比如0-100,这个范围。

可以这么写:if(a>=0  &&a<=100),这就是上面的区间,中间的&&符号代表的是“与”。意思是a变量大于等于0并且小于等于100。这里就涉及到一个逻辑符号:&&。当然还有另外两个,分别是||和!,其中||代表的是“或”,意思是2个条件有一个成立,则等式就为真。!代表的则是“非”,意思是条件不成立时为真。

扫描二维码关注公众号,回复: 3230449 查看本文章

例:#include<stdio.h>

int main()

{int  b=20;                                             分段运行,测试。

bool b1=b>10;                                      b1为假。

bool b2=b<90;                                      b2为真。

bool b3=!b1&&b2;                                b3为真。因!b1为真,并且b2为真。

bool b4=b1||b2;                                     b4为真。因b1为假,但b2为真。

“||或”字符只管条件中有1个为真,整条都为真,相应的“&&与”字符只管条件中有1条为假,则整条为假。如果计算机运行到判断符时,发现上述问题,则不会判断相应条件之后的所有条件。即&&不会继续判定已知假判断后的判定,||也不会判断已知真判断后的判断。

最后,这三个字符的判断顺序应为!>&&>||,如果相应的条件出现在一行命令中,要了解它们之间的优先级关系。防止判断失误,当然如果记不得优先级的话,可以把想要先行判断的表达式用( )括起来,这样也方便咱们后续解读程序和调试等。

课上老师还留下了一个小作业,希望大家用已学习的知识,编写一个猜数字的小游戏。

答案:

#include <stdio.h>


#include<stdlib.h>


int main()
{
int c = rand() % 100;//取0-99的随机数
int num = 0;
int count = 5;
bool ok = false;
scanf_s("%d", &num);
count--;
if (num > c)
{
printf("big");
}
else if (num < c)
{
printf("small");
}
else
{
ok = true;
printf("ok!");
}
if (!ok&&count>0)
{
scanf_s("%d", &num);
count--;
if (num > c)
{
printf("big");
}
else if (num < c)
{
printf("small");
}
else
{
ok = true;
printf("ok!");
}
}
if (!ok&&count>0)
{
scanf_s("%d", &num);
count--;
if (num > c)
{
printf("big");
}
else if (num < c)
{
printf("small");
}
else
{
ok = true;
printf("ok!");
}
}
if (!ok&&count>0)
{
scanf_s("%d", &num);
count--;
if (num > c)
{
printf("big");
}
else if (num < c)
{
printf("small");
}
else
{
ok = true;
printf("ok!");
}
}
if (!ok&&count>0)
{
scanf_s("%d", &num);
count--;
if (num > c)
{
printf("big");
}
else if (num < c)
{
printf("small");
}
else
{
ok = true;
printf("ok!");
}
}
if (!ok&&count == 0)
{
printf("输了!");
}
system("pause");
return 0;
}

这是老师编写的程序,但是不知道为什么在VS2013上,每次运行,答案均为41,希望下次课程能再问问老师吧。

当然也希望大神能帮忙解答一下。我先去预习一下,据说下次课要学习循环。

猜你喜欢

转载自blog.csdn.net/gkht007/article/details/79726610
今日推荐