【发布时间】:2013-12-18 10:14:25
【问题描述】:
我的代码是这样的:
if (statusCode== "1")
{
statusCode = productStatusItemAvailable1;
}
else if(statusCode =="2")
{
statusCode = productStatusItemOutOfStock1;
}
else if(statusCode =="3")
{
statusCode = productStatusItemAvailableOnRemoteDate1;
}
else if(statusCode =="4")
{
statusCode = productStatusAlternativeItemAvailable1;
}
else if(statusCode =="5")
{
statusCode = productStatusItemSoldOutAndOurSuppliersHaveNoAvailable;
}
else if(statusCode =="6")
{
statusCode = productStatusItemSoldOutContactCustomerService1;
}
为了使其更具可读性和易于处理,我尝试应用三元运算符
statusCode == "1" ? productStatusItemAvailable1: "2" ? productStatusItemOutOfStock1 : "3" ? productStatusItemAvailableOnRemoteDate1 : "4" ? productStatusAlternativeItemAvailable1 : "5" ? productStatusItemSoldOutAndOurSuppliersHaveNoAvailable : "6" ? productStatusItemSoldOutContactCustomerService1;
但这显示错误
不能将字符串隐式转换为布尔值。
我做错了什么?还是不能与字符串一起使用?
【问题讨论】:
-
三元运算符的意思是“具有三个操作数的运算符”。如果您尝试将整个系列的三元运算符链接在一起以逐个与一组值进行比较,那么您可能没有按预期使用三元条件运算符。您绝对应该使用开关/外壳。
-
嗯,第二个你没有检查
statusCode=="2"你刚才说的是“2”,这是没有意义的 -
哇。你听说过
switch吗? -
为您的错误代码创建一个枚举并在 switch 语句之前解析“数字”将使代码更易于维护和阅读。