c#do while(两个条件)

时间:2010-10-13 11:21:26

标签: c#

我试图在两个条件中的任何一个满足十次时进行循环。

这包括一盒糖或盐的瓶子,人必须随机挑选两瓶。当选择了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);

6 个答案:

答案 0 :(得分:11)

目前,您将继续循环,而 已被选中10次。我怀疑你想要:

while (Salt < 10 && Sugar < 10)

话虽如此,你提供的代码显然是伪代码 - 它不会因各种原因而编译。如果您可以发布一个简短但完整的程序来证明问题,我们可以更自信地给出答案。同样地,说“它似乎不起作用”就像是去看医生并期待“我感觉不舒服”的诊断。更多细节请...

答案 1 :(得分:2)

您在此处开始声明saltsuger,但在循环内使用SaltSugar。它们是您在其他地方定义的属性吗?你确定他们按照你的期望去做吗?您是否尝试过使用循环中的变量而不是属性,因此您的代码看起来像这样?

    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)

您的ifwhile语句中的括号不均匀,您的变量名称不匹配,您的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语句”本身中选择盐和糖的条件。