【发布时间】:2017-02-18 19:01:05
【问题描述】:
有人可以指导我或将其转换为三元运算符形式吗?我正在使用堆栈制作一个文本编辑器,它将在其中检查代码中的括号,但我只需要帮助使用三元运算符来缩短此代码。
if(s.at(i)==x.at(j))
{
list.push_back(s.at(i));
}
if(s.at(i)==y.at(j))
{
if(!list.empty())
{
if(list.back()=='(' && s.at(i)==')')
{
v=1;
list.pop_back();
}
else if(list.back()=='{' && s.at(i)=='}')
{
v=1;
list.pop_back();
}
else if(list.back()=='[' && s.at(i)==']')
{
v=1;
list.pop_back();
}
else
{
error_position=i+1;
}
}
else
{
error_position=i+1;
v=0;
}
}
【问题讨论】:
-
如果我是你,我会避免使用条件运算符缩短这段代码,因为它只会让一切变得更难理解。清除代码>>>>>>>>短代码。
-
您为什么要这样做? 1. 没有任何收获 2. 会使代码相当不可读。
-
我真的不明白这一点,SO不是免费的代码服务/请做我的家庭作业网站。
-
如果您需要在 2 个选项之间进行选择,请仅使用三元组。用于其他任何事情,它会让你的代码变得混乱。
-
另外,从不使用三元运算符来执行副作用(正如您在此处要求的那样)。这完全违背了三元运算符的目的。
标签: c++ parsing ternary-operator code-readability