我试图在两个条件中的任何一个满足十次时进行循环。
这包括一盒糖或盐的瓶子,人必须随机挑选两瓶。当选择了10次时,他/她将停止采摘......它似乎无法正常工作。
int sugar = 0;
int salt = 0;
do
bottle1.choose
bottle2.choose
{
if ((bottle1 = 'Sugar') && (bottle2 = 'Sugar'))
{
Console.Write("Sugar");
Sugar++;
}
else if (bottle1 = 'Salt') && bottle1 = 'Salt')
{
Salt++;
Console.Write("Salt");
}
else
{
Console.Write("None");
}
}
while ((Salt < 10) || Sugar < 10);
答案 0 :(得分:11)
目前,您将继续循环,而 已被选中10次。我怀疑你想要:
while (Salt < 10 && Sugar < 10)
话虽如此,你提供的代码显然是伪代码 - 它不会因各种原因而编译。如果您可以发布一个简短但完整的程序来证明问题,我们可以更自信地给出答案。同样地,说“它似乎不起作用”就像是去看医生并期待“我感觉不舒服”的诊断。更多细节请...
答案 1 :(得分:2)
您在此处开始声明salt
和suger
,但在循环内使用Salt
和Sugar
。它们是您在其他地方定义的属性吗?你确定他们按照你的期望去做吗?您是否尝试过使用循环中的变量而不是属性,因此您的代码看起来像这样?
int sugar = 0;
int salt = 0;
do
bottle1.choose
bottle2.choose
{
if ((bottle1 = 'Sugar') && (bottle2 = 'Sugar'))
{
Console.Write("Sugar");
sugar++;
}
else if (bottle1 = 'Salt') && bottle1 = 'Salt')
{
salt++;
Console.Write("Salt");
}
else
{
Console.Write("None");
}
}
while ((salt < 10) || sugar < 10);
答案 2 :(得分:2)
您的if
和while
语句中的括号不均匀,您的变量名称不匹配,您的bottle.choose
语句也必须位于do-while
循环之下,而您是在您的条件下使用赋值运算符=
:
int sugar = 0;
int salt = 0;
do {
bottle1.choose();
bottle2.choose();
if ((bottle1 == 'Sugar') && (bottle2 == 'Sugar'))
{
Console.Write("Sugar");
sugar++;
}
else if ((bottle1 == 'Salt') && (bottle1 == 'Salt'))
{
salt++;
Console.Write("Salt");
}
else
{
Console.Write("None");
}
} while ((salt < 10) || (sugar < 10));
答案 3 :(得分:1)
如果您想要在选择了盐或糖时停止,或者如果您想在选择了10件物品时停下来,我无法判断您的问题。
如果您正在寻找前者,那么Jon Skeet的回答将为您完成。
如果您正在寻找后者,那么我认为您正在寻找以下内容:
while (Salt + Sugar < 10);
答案 4 :(得分:0)
如果我理解正确的代码,两瓶必须具有相同的味道才能完成增量。
第一个错误似乎是“Salt”的测试条件,你检查两次“bottle1”,测试应该是:
else if (bottle1 = 'Salt') && bottle2 = 'Salt')
答案 5 :(得分:0)
您的变量名称不匹配,您可以在“while语句”本身中选择盐和糖的条件。