【问题标题】:C# Guessing Game - While Condition Looping [closed]C# 猜谜游戏 - While 条件循环 [关闭]
【发布时间】:2021-05-24 03:36:30
【问题描述】:

所以我正在学习创建基本猜谜游戏的教程。有问题的视频没有让你使用数组,但我想看看我是否可以让它工作。获得一个没有抛出和错误的while语句需要一段时间,但现在它没有错误并且即使用户键入条件也只是循环。作为新手,我是否遗漏了某些东西或以某种方式错误地对其进行了编程?

using System;

namespace AuthorDesigned_GuessingGame
{
    class Program
    {
        static void Main(string[] args)
        {
            //LESSON 17
            Console.WriteLine("LESSON 17");
            Console.WriteLine("");

            string[] secretWord = new string [2];
            secretWord[0] = "Author";
            secretWord[1] = "author";
            string guessWord = "";

           {
            
            }
            while ((guessWord != secretWord[0]) || (guessWord != secretWord[1]))
            {
                Console.Write("Enter a guess for the secret word: ");
                guessWord = Console.ReadLine();
            }
            Console.WriteLine("You Win!");

            Console.ReadLine();
        }
    }
}

【问题讨论】:

  • @godot:对除空格(缩进)以外的代码进行任何更改都违反了 Stack Overflow 社区准则。即使是像你这样的小改动,可以说不会改变问题或代码的逻辑,也应该避免。

标签: c# arrays string while-loop


【解决方案1】:

你需要将循环条件改为AND

while ((guessWord != secretWord[0]) && (guessWord != secretWord[1]))
{
    Console.Write("Enter a guess for the secret word: ");
    guessWord = Console.ReadLine();
}

在循环之前还有 2 个花括号,它们并没有真正做任何事情。

【讨论】:

  • && != AND... 您的声明应该类似于:You need to change the loop condition to AndAlso (&&)。
  • while ((guessWord != secretWord[0]) && (guessWord != secretWord[1])) 在前后都有花括号,因为当它们不存在时,Visual Studios 会为 && 符号抛出错误。
【解决方案2】:

我同意之前的回答,您也可以在那里使用while(true):

while(true)
{
    Console.Write("Enter a guess for the secret word: ");
    guessWord = Console.ReadLine();
    if(guessWord == secretWord[0] || guessWord == secretWord[1]) break;
}

【讨论】:

    猜你喜欢
    • 2021-11-02
    • 1970-01-01
    • 1970-01-01
    • 2023-03-15
    • 2015-10-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多