GrabiCraft Ответов: 3

Мой код ошибки: CS1513 C# } ожидается. Когда я делаю это я получаю еще одну кучу ошибок


Мой код ошибки: CS1513 C# } ожидается. Когда я делаю это, я получаю еще одну кучу ошибок.
Итак вот мой код,


using System;
using System.Diagnostics;

namespace Next

{

    class MainClass

    {

        public static void Main(string[] args) // this is a method called "Main". It is called when the program starts.

        {
            Random numberGenerator = new Random();
            int num01 = numberGenerator.Next(1, 21);
            int num02 = numberGenerator.Next(1, 21);
            int num001 = 1;
            int num002 = 2;
            int num003 = 3;
            int num004 = 4;
            int num005 = 5;

            Console.WriteLine("                                                  Welcome to XMATH!");
            Console.WriteLine("------------------------------------------------------------------------------------------------------------------------");
            Console.WriteLine("                                                  Difficulty Selection \n1 \n2 \n3 \n4 \n5 \n6 \n7 \n8 \n9");
            Console.WriteLine("To START the first level press 1 \nTo ENTER a code press 2\nTo EXIT the game press 3 \nTo see the RANKLIST press 4 \nTo see the CREDITS press 5");
            Console.WriteLine();
            Console.WriteLine("------------------------------------------------------------------------------------------------------------------------");


            int answer01 = Convert.ToInt32(Console.ReadLine());
            if (num001 == answer01)
            {
                Console.WriteLine();
                Console.WriteLine("------------------------------------------------------------------------------------------------------------------------");
                Console.WriteLine();
                Console.Write("What is " + num01 + " plus " + num02 + "?: ");
                int answer = Convert.ToInt32(Console.ReadLine());
                if (answer == num01 + num02)
                {

                    Console.WriteLine("Well done! Your answer is correct.");

                }
                else
                {

                    Console.WriteLine("Are you even trying?");

                }
            }


            int answer02 = Convert.ToInt32(Console.ReadLine());
            else if (num002 == answer02)
            {
                Console.WriteLine("------------------------------------------------------------------------------------------------------------------------");
                Console.WriteLine("                                                  Still in progress. \n                                                  Please wait for updates");
                Console.WriteLine("------------------------------------------------------------------------------------------------------------------------");
            }
            Console.ReadKey();
            Console.WriteLine();
        }

    }

}


Спасибо за любую руку помощи

Что я уже пробовал:

Я уже добавил фигурную скобку, но потом получаю еще одну кучу ошибок.

Michael_Davies

У вас есть int answer02, определенный между закрывающими скобками if true и else, если так, то else if не привязан к if. Поскольку вы, похоже, не используете answer02, вам не нужно, чтобы он поместил строку чтения в else if.

} //Если закрытие раздела

int answer02 = преобразовать.ToInt32(Консоль.Линия чтения());
остальное, если (num002 == answer02)

Попробуй
} //Если закрытие раздела
else if (num002 == Convert.ToInt32(Консоль.Линия чтения()))

Кроме того, если пользователь вводит что-то другое, кроме целого числа, ваш конверт.ToInt32 рухнет.

#realJSOP

Честно говоря, я потерял интерес, когда увидел это - "но потом я получаю еще одну кучу ошибок." Ты держал меня до последнего предложения.

3 Ответов

Рейтинг:
28

ZurdoDev

Вы объявляете переменную в середине структуры if/else if.

int answer02 = преобразовать.ToInt32(Консоль.ReadLine()); находится в неправильном месте.

if (){

}
// you cannot put code here.
else if ()
{

}


Рейтинг:
1

Thomas Daniels

Проблема заключается в вашем else if заявление после вашего answer02 декларация. Оператор else if всегда должен следовать за оператором an if заявление немедленно, что здесь не так, потому что объявление answer02 находится между ними.

Есть две вещи, которые вы можете сделать, чтобы исправить ошибку, и вам нужно будет посмотреть, какая из них лучше всего соответствует тому, что вы хотите сделать с вашим приложением. Первый способ-заменить "еще если" простым"если". Другой способ-поставить оператор "int answer02 = ..." перед вашим первым оператором if. Оба приложения будут компилироваться, но их работа будет отличаться. Решите, какой из них вы хотите.


Рейтинг:
1

Midi_Mick

У вас есть else if без непосредственно предшествующего if (сразу же после того, как int answer02 = ... декларация). Уберите это else.