C# 从变量更改if语句
我不确定这个问题是否正确,但以下是我试图实现的目标 我正在运行一个for循环,希望在其中更改每个循环中的if语句 以下是一个例子:C# 从变量更改if语句,c#,if-statement,for-loop,while-loop,C#,If Statement,For Loop,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;
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... //
}
}
for(int i=0;i这里您分配了var context1=currentField;
在case语句中,您试图分配布尔值,所以它是错误的
见案例0:
context1 = currentField % 10 != 0;
这里您分配var context1=currentField;
,在case语句中,您试图分配布尔值,所以它是错误的
见案例0:
context1 = currentField % 10 != 0;
<>代码> var CordExt1= CurrnField:/VaR将考虑为int,因为您将int变量赋值给它
因此,最好先将true
或false
分配给var context1
稍后,如果将bool函数分配给context1,则会发生强制转换错误
<>代码> var CordExt1= CurrnField:/VaR将考虑为int,因为您将int变量赋值给它
因此,最好先将true
或false
分配给var context1
稍后,如果将bool函数分配给context1,则会出现强制转换错误表达式currentField%10!=0
返回一个bool
您的context1
变量的类型为int
,因此无法将该表达式指定给该变量
我不确定你在这里想做什么,但是考虑使用你的表达式在<强> I/St>语句:
if(currentField % 10 != 0)
{
curprogr = 1;
}
break;
表达式currentField%10!=0
返回一个bool
您的context1
变量的类型为int
,因此无法将该表达式指定给该变量
我不确定你在这里想做什么,但是考虑使用你的表达式在<强> I/St>语句:
if(currentField % 10 != 0)
{
curprogr = 1;
}
break;
context1
是一个int
,因为您在这里为它添加了int
:
int currentField = field;
var context1 = currentField;
但稍后您将在此处分配一个bool
,f.e:
context1 = currentField % 10 != 0;
返回true
或false
,因此不能将其分配给该变量
因此,只需将其设为布尔变量:
bool context1 = false;
我还认为您实际上希望使用if
而不是while
-循环
所以把它改成
if(context1)
{
// Here is where I want it to change for each time the loop runs through //
}
为什么我会这样想?因为你在标题中提到了if
,似乎你不想改变while
-循环中的条件,这使得它成为一个无限循环。context1
是一个int
,因为你在这里有一个int
的辅助:
int currentField = field;
var context1 = currentField;
但稍后您将在此处分配一个bool
,f.e:
context1 = currentField % 10 != 0;
返回true
或false
,因此不能将其分配给该变量
因此,只需将其设为布尔变量:
bool context1 = false;
我还认为您实际上希望使用if
而不是while
-循环
所以把它改成
if(context1)
{
// Here is where I want it to change for each time the loop runs through //
}
为什么我这么认为?因为你在标题中提到了if
,似乎你不想改变while
-循环中的条件,这使得它成为一个无限循环。你可以使用类似谓词的委托函数来实现这个功能。HTH你可以使用类似谓词的委托函数来实现这个功能Endosial.Hth. UR首先将int变量Currand字段赋值给上下文,因此它将VAR变量视为int。稍后你尝试对BoL函数CONTEXT1进行排序。这就是为什么这个错误是什么?如果你是“否则”条件,你希望你的<代码> < < /C> >条件是什么,因为数字不是真的还是假的。(除非您实际指定了比较)这是因为您正在尝试分配当前字段%10!=0
(bool)到context1
,它是int。并且没有为它定义隐式/显式强制转换。你在问一个关于if1的问题,但是你有一个while`循环。各种答案都在评论int
vsbool
,但是你预计while
循环中会发生什么?上下文会改变吗?应该改变吗当?> UR首先将int变量Currrnfield分配给上下文时,它将VAR变量视为int。稍后您尝试对布尔函数CONTEXT1进行排序。这就是为什么这个错误是什么?什么是UR IF条件?当/<代码>条件时,你希望你的<代码>什么,因为数字不是真的还是假的。(除非您实际指定了比较)这是因为您正在尝试分配当前字段%10!=0
(bool)到context1
,它是int。并且没有为它定义隐式/显式强制转换。你在问一个关于if1的问题,但是你有一个while`循环。各种答案都在评论int
vsbool
,但是你预计while
循环中会发生什么?上下文会改变吗?应该改变吗成为while
?啊,由于树的原因,没有看到林:-)谢谢Tim。有意义的变量名和指定类型而不是使用var
有助于避免这些问题;)如何可能以while(true)结束
help here?您正在解释为什么代码无法编译,但不是在更基本的层面上解释代码的潜在错误。@DavidArno:您是对的:我已经相应地编辑了我的答案。循环没有意义。啊,由于树的:-),没有看到林感谢Tim。有意义的变量名和指定类型,而不是使用var
有助于避免这些问题;)在这里,while(true)
有什么帮助?您正在解释代码无法编译的原因,但不是从更基本的层面解释代码的潜在错误。@DavidArno:您是对的:我已经相应地编辑了我的答案。循环没有意义。