Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/408.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
do-whilejavascript中的switch语句_Javascript_Switch Statement_Do While - Fatal编程技术网

do-whilejavascript中的switch语句

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

我有下面的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[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;]
}