转而去goto?

时间:2013-01-23 16:54:53

标签: c#

由于我是C#的初学者,我们只能在Console中编写。作业要求我们不要使用“goto”这是我目前使用的。

你在控制台结束时被问到一个问题,如果“是”,它会让我回到入口处,如果“否”则转到下一个问题。

switch (pitanje)
{
    case ("da"):
        goto start;
    case ("ne"):
        Console.ForegroundColor = ConsoleColor.Magenta;
        goto end;
    default:
        break;
}

所以“开始”在开头(第一个条目),“结束”在控制台的最后一个问题前面。

如何在没有goto

的情况下完成此操作

4 个答案:

答案 0 :(得分:2)

string pitanje = "";

while(pitanje != "ne")
{
    //start

    if(pitanje == "da")
        //logic

}
Console.ForegroundColor = ConsoleColor.Magenta;

P.S。俄语命名变量不是最佳选择。

另请考虑阅读Edsger W. Dijkstra撰写的经典文章Go To Statement Considered Harmful。另请阅读他关于Structured Programming的书。它对如何以这种方式构建程序提出了一个很好的观点,即您可以分析并证明它的正确性。

答案 1 :(得分:0)

假设switch是程序的最后一部分,请设置一个while循环来检查程序周围的变量。根据{{​​1}}分支的内容更新该变量。

答案 2 :(得分:0)

您的代码可能形成一种循环。在这种情况下,您可以像这样替换它:

while (pitanje != "ne") {
    // Read content of pitanje …

    switch (pitanje) {
        case "da":
            continue;
        case "ne":
            Console.ForegroundColor = ConsoleColor.Magenta;
            break;
    }
}

- 无需default案例。 continue跳回到循环的开头。在ne情况下,您只需更改颜色,然后在循环标题中取消循环。

答案 3 :(得分:0)

您可以使用break或continue。或者您可以使用变量作为标志。你也可以使用循环和条件。这完全取决于你的程序