习题6.6 用逻辑运算符判断年龄
取值范围测试
#include<iostream>
const char* qualify[4] =
{
"你是小鲜肉!",
"你是老腊肉!",
"你是腊肉!",
"你是仙风道骨的老头子!"
};
int main()
{
using namespace std;
int age;
cout << "Enter your age in years: ";
cin >> age;
int index;
if (age > 17 && age < 35)
index = 0;
else if (age >= 35 && age < 50)
index = 1;
else if (age >= 50 && age < 65)
index = 2;
else
index = 3;
cout << "You qualify for the " << qualify[index];
return 0;
}
习题6.7 逻辑NOT运算符:!
将!运算符用于函数返回值,来筛选可赋给int变量的数字输入,如果用户定义的函数is_int的参数位于int类型的取值范围内,则它将返回ture,然后,程序使用while(!is-int(num))测试来拒绝不在该取值范围内的值。
- 用!编写代码
#include<iostream>
#include<climits>
bool is_int(double x);
int main()
{
using namespace std;
double num;
cout << "Enter an integer value: ";
cin >> num;
cout << "INT_MAX: " << INT_MAX << endl;
cout << "INT_MIN: " << INT_MIN << endl;
while (!is_int(num))
{
cout << "Out of range -- pls try again: ";
cin >> num;
}
int value = int(num);
cout << "You have entered the integer " << value << "\nbye\n";
return 0;
}
bool is_int(double x)
{
if (x <= INT_MAX && x >= INT_MIN)
return true;
else
return false;
//if (x> INT_MAX || x < INT_MIN)
// return true;
//else
// return false;
}
- 不用!编写代码
#include<iostream>
#include<climits>
bool isn_int(double x);
int main()
{
using namespace std;
double num;
cout << "Enter an integer value: ";
cin >> num;
cout << "INT_MAX: " << INT_MAX << endl;
cout << "INT_MIN: " << INT_MIN << endl;
while (isn_int(num))
{
cout << "Out of range -- pls try again: ";
cin >> num;
}
int value = int(num);
cout << "You have entered the integer " << value << "\nbye\n";
return 0;
}
bool isn_int(double x)
{
if (x> INT_MAX || x < INT_MIN)
return true;
else
return false;
}
笔记整理
优先级比较
逻辑非运算符高于所有的关系运算符和算术运算符;逻辑与运算符高于逻辑或运算符,但两者都小于关系运算符。
100分
当发现while循环的逻辑用!比较奇怪,想到了用修改函数的方法使while循环不需要用!,很棒!