如何防止相等运算符误写成赋值运算符?
如何防止相等运算符误写成赋值运算符?除了1==a这样,还有什么办法防止?比如说判断两个变量相等时,如a==b,如何防止相等运算符误写成赋值运算符?...
如何防止相等运算符误写成赋值运算符?
除了1==a这样,还有什么办法防止?比如说判断两个变量相等时,如a==b,如何防止相等运算符误写成赋值运算符? 展开
除了1==a这样,还有什么办法防止?比如说判断两个变量相等时,如a==b,如何防止相等运算符误写成赋值运算符? 展开
2个回答
展开全部
不知道你是不是在用C++,如果是的话,可以通过Macro来防止
#include <iostream>
#include <assert.h>
using namespace std;
#define IF(x) if(booltest(x,#x,__LINE__))
bool booltest(bool a, string s, int b)
{
return a;
}
template<class T>
int booltest(T a, string s, int b)
{
cout << "Error @ Line " << b << ": " << s << " in condition" << endl;
assert(0);
}
int main()
{
double a = 3;
double b = 3;
IF(a==b)
cout << "a==b" << endl;
IF((a=b)!=0)
cout << "This style allows you to use if(a=b)" << endl;
IF(a=b)
cout << "But this will trigger Error!" << endl;
}
#include <iostream>
#include <assert.h>
using namespace std;
#define IF(x) if(booltest(x,#x,__LINE__))
bool booltest(bool a, string s, int b)
{
return a;
}
template<class T>
int booltest(T a, string s, int b)
{
cout << "Error @ Line " << b << ": " << s << " in condition" << endl;
assert(0);
}
int main()
{
double a = 3;
double b = 3;
IF(a==b)
cout << "a==b" << endl;
IF((a=b)!=0)
cout << "This style allows you to use if(a=b)" << endl;
IF(a=b)
cout << "But this will trigger Error!" << endl;
}
2012-05-24
展开全部
以前初学时我也老犯这个错误,还特别不好除错。 多写,记住赋值和条件判断的区别就再不会出这个问题了。
追问
我知道赋值运算符和相等运算符的区别,只是实际编写程序时经常因为输入少按一个等号,就写成赋值运算符了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询