do-whilejavascript中的switch语句
我有下面的c代码转换。我尝试过的所有c编译器上的原始编译;gcc、英特尔、Visual Studio 然而,javascript抱怨javascript中存在do while循环do-whilejavascript中的switch语句,javascript,switch-statement,do-while,Javascript,Switch Statement,Do While,我有下面的c代码转换。我尝试过的所有c编译器上的原始编译;gcc、英特尔、Visual Studio 然而,javascript抱怨javascript中存在do while循环 var rindex=0; var lim=10; var res = 2; switch (res) { do { case 0: r[rindex] = uiColor; rindex++; case 3: r
var rindex=0;
var lim=10;
var res = 2;
switch (res) {
do {
case 0: r[rindex] = uiColor; rindex++;
case 3: r[rindex] = uiColor; rindex++;
case 2: r[rindex] = uiColor; rindex++;
case 1: r[rindex] = uiColor; rindex++;
} while (rindex < lim);
}
var-rindex=0;
var-lim=10;
var-res=2;
开关(res){
做{
案例0:r[rindex]=uiColor;rindex++;
案例3:r[rindex]=uiColor;rindex++;
案例2:r[rindex]=uiColor;rindex++;
案例1:r[rindex]=uiColor;rindex++;
}而(rindex
我似乎找不到一种不用改变逻辑就能在javascript中实现这一点的方法。javascript是否不允许在switch语句中使用do while 对,请参考JavaScript的
事实上,大多数语言都严格定义了
开关语句。以这种方式实现达夫的设备需要一个。为什么要在Javascript中使用达夫的设备?它给您一个错误的事实意味着它不受支持。C语言是唯一可以使用的语言之一。只需使用一个简单的循环,并担心只有在遇到实际性能问题时才会进一步优化它。for(var i=res;i
?还是我遗漏了逻辑的一个关键部分?@MOehm,你没有,只是询问者试图在这里实现一个达夫装置。@Katie这就是问题所在。我已经在一个标准循环中这样做了。它是位图的RLE压缩/解压缩程序。谢谢。@EvrenBingøl,手动循环展开的正常解决方案(即使在C中)是将其分成两个循环。一个用来处理大块展开的语句,另一个用来一次一个地完成剩余的语句。
switch (expression) {
case value1:
//Statements executed when the result of expression matches value1
[break;]
case value2:
//Statements executed the result of expression matches value2
[break;]
...
case valueN:
//Statements executed when the result of expression matches valueN
[break;]
default:
//Statements executed when none of the values match the value of the expression
[break;]
}