dart中的开关盒工作不正常
我试图使用switch case,但它的行为很奇怪。对于某些输入,它起作用;对于某些输入,它不起作用。我检查了输入值,发现它们有利于满足条件。请帮忙。我对飞舞和飞镖还不熟悉 我试图用if-else-if实现这一点。即使这样对我也不起作用dart中的开关盒工作不正常,dart,flutter,dart-html,Dart,Flutter,Dart Html,我试图使用switch case,但它的行为很奇怪。对于某些输入,它起作用;对于某些输入,它不起作用。我检查了输入值,发现它们有利于满足条件。请帮忙。我对飞舞和飞镖还不熟悉 我试图用if-else-if实现这一点。即使这样对我也不起作用 List<String> lstNames = List<String>(); lstNames.addAll(["Dividends INR", "Payout Ratio % *", "Operating Cash F
List<String> lstNames = List<String>();
lstNames.addAll(["Dividends INR", "Payout Ratio % *", "Operating Cash Flow INR Mil", "Cap Spending INR Mil", "Free Cash Flow INR Mil"]);
for(String ItemHeading in lstNames){
switch (ItemHeading) {
case '' :
break;
case 'Dividends INR':
{/*Doing something.*/}
break;
case 'Payout Ratio % *':
{/*Doing something.*/}
break;
case 'Operating Cash Flow INR Mil':
{/*Doing something.*/}
break;
case 'Cap Spending INR Mil':
{/*Doing something.*/}
break;
case 'Free Cash Flow INR Mil':
{/*Doing something.*/}
break;
default:
break;
}
}
List lstNames=List();
lstNames.addAll([“股息卢比”、“支付比率%*”、“营业现金流量卢比”、“上限支出卢比”、“自由现金流量卢比”);
for(lstNames中的字符串项标题){
开关(项目标题){
案例“”:
打破
案例“股息卢比”:
{/*正在做某事。*/}
打破
案例“支付比率%*”:
{/*正在做某事。*/}
打破
案例“营业现金流(百万卢比)”:
{/*正在做某事。*/}
打破
案例“上限支出(百万卢比)”:
{/*正在做某事。*/}
打破
案例“自由现金流(百万卢比)”:
{/*正在做某事。*/}
打破
违约:
打破
}
}
在上面的代码中,基于lstNames中的字符串,我尝试运行switch case。lstrow中元素包含的字符串值为{股息INR,支付比率%*,经营现金流INR Mil,上限支出INR Mil,自由现金流INR Mil}。“支付比率%*”的理由是有效的。对于其他情况,它只是跳过/跳转到下一个案例并退出。请帮忙。如果调试此文件还需要其他信息,请告诉我。编辑:
addAll()
接受一个iterable
lstNames.addAll(["Dividends INR", "Payout Ratio % *", "Operating Cash Flow INR Mil", "Cap Spending INR Mil", "Free Cash Flow INR Mil"]);
将项目放入列表中
你使用了错误的评论
/
注释整行以及结束语}
要使用的/**/
case 'Dividends INR':
{/*Doing something.*/}
break;
case 'Payout Ratio % *':
{/*Doing something.*/}
break;
此外,在
默认值
情况下,不需要中断
。我已经做了编辑。给出这些注释只是为了替换业务逻辑。开关箱的问题仍然存在。它适用于“支付比率%*”,而不适用于其他情况。请帮助。另外,您的营业现金流INR Mil
中似乎有一个新行,这导致了问题。嘿,对此表示抱歉。addAll()还用于隐藏业务逻辑。我已经做了编辑。名单上的名字很好。问题是,当控件进入swich case时,我可以在调试中清楚地看到ItemHeading包含的值是一个case常量值,应该满足它,并且应该执行case。它仍然在跳转这个案例并转到下一个案例。请注意,{}
不是必需的:。