从变量更改if语句

Man*_*nsa 1 c# for-loop if-statement while-loop

不确定问题是否正确,但这是我想要完成的.

我正在运行一个for循环,我想在每个循环中更改if语句.

这是一个例子:

for(int i=0;i<3;i++){

    int currentField = field;

    var context1=currentField;
    int curprogr=0;

    switch (i){
    case 0:
        context1 = currentField % 10 != 0;
        curprogr = 1;
        break;
    case 1:
        context1 = Mathf.Floor(currentField/10) != 0;
        curprogr = 10;
        break;
    case 2:
        context1 = currentField % 10 != 0 && Mathf.Floor(currentField/10) != 0;
        curprogr = 11;
        break;
    }

    while(context1){ // Here is where I want it to chnage for each time the loop runs through //
        // Some logic here... //
    }
}
Run Code Online (Sandbox Code Playgroud)

我收到此错误:无法隐式转换bool' to每个switchcase中关于context1的类型int'.

希望这是有道理的,任何帮助都表示赞赏.

提前致谢

Tim*_*ter 6

context1是的,int因为你int在这里赞成它:

int currentField = field;
var context1 = currentField;
Run Code Online (Sandbox Code Playgroud)

但是后来你在bool这里指定了一个:

context1 = currentField % 10 != 0;
Run Code Online (Sandbox Code Playgroud)

!=-运算符要么退货truefalse,所以你不能把它分配给该变量.

所以只需将它变为bool变量:

bool context1 = false;  
Run Code Online (Sandbox Code Playgroud)

我还认为你实际上想要使用if而不是while-loop.

所以改成它

if(context1)
{ 
    // Here is where I want it to change for each time the loop runs through //
}
Run Code Online (Sandbox Code Playgroud)

为什么我这么想?因为你if在标题中提到过,似乎你不想改变while-loop中的条件,这使得它成为一个无限循环.