yaniveidelnant Ответов: 3

Ошибка CS1513 (быстрый вопрос)


Поэтому я относительно новичок в c# и попытался запустить a действительно простой код, но когда я пытаюсь его запустить, он показывает сообщение об ошибке "} expected" в строке 29, хотя я не вижу, куда поставить фигурные скобки. как-нибудь я мог бы решить эту проблему и/или сделать свой общий код лучше? спасибо

using System;

namespace ConsoleApp1
{
    class Program
    {
        static void Main(string[] args)
        {
            string Name;
            string Family;
            string Button;
            int Answer;
            Answer = 54;


            Console.WriteLine("what is your name?");

            Name = Console.ReadLine();

            Console.WriteLine("what is your family name?");

            Family = Console.ReadLine();

            Console.WriteLine("whats 9+45?");
            {
                if (Answer == 54);
                { Console.WriteLine("{0} {1} is Smart! :D ");
                } <===== //it asks me to put a '}' after the'}'
          
             else 
               { Console.WriteLine("{0} {1} isn't so Smart :( ");
                }
                Console.WriteLine("Press Enter to Close");

                Button = Console.ReadLine();
            }

            



        }
    }
}


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

Я попытался поместить его туда как он просит но он выдает кучу ошибок

3 Ответов

Рейтинг:
9

Patrice T

Совет: Научитесь правильно делать отступы в вашем коде, это покажет его структуру и поможет чтению и пониманию. Это также помогает выявлять структурные ошибки.

using System;

namespace ConsoleApp1
{
  class Program
  {
    static void Main(string[] args)
    {
      string Name;
      string Family;
      string Button;
      int Answer;
      Answer = 54;


      Console.WriteLine("what is your name?");

      Name = Console.ReadLine();

      Console.WriteLine("what is your family name?");

      Family = Console.ReadLine();

      Console.WriteLine("whats 9+45?");
      {
        if (Answer == 54); // semicolumn here is mistake
        {
          Console.WriteLine("{0} {1} is Smart! :D ");
        } <===== //it asks me to put a '}' after the'}'

        else
        {
          Console.WriteLine("{0} {1} isn't so Smart :( ");
        }
        Console.WriteLine("Press Enter to Close");

        Button = Console.ReadLine();
      }
    }
  }
}

Профессиональные редакторы программистов имеют эту функцию и другие, такие как сопоставление скобок и подсветка синтаксиса.
Блокнот++ Главная Страница[^]
личные[^]
Стиль отступа - Википедия[^]


TheRealSteveJudge

Также Ценная информация! 5*
Я добавил слово "пожалуйста".
В противном случае Билл будет жаловаться и понижать голос ;-)

Patrice T

Танкист ты.

Рейтинг:
20

TheRealSteveJudge

Точка с запятой после

if (Answer == 54)
это вызывает ошибку.
Пожалуйста, удалите его, и вы можете скомпилировать.


CPallini

5.

TheRealSteveJudge

Спасибо!

Рейтинг:
1

OriginalGriff

Чтобы добавить к тому, что сказал TheRealSteveJudge: вы все равно неправильно используете скобки.

Console.WriteLine("whats 9+45?");
{
    if (Answer == 54);
    { Console.WriteLine("{0} {1} is Smart! :D ");
    } <===== //it asks me to put a '}' after the'}'

 else
   { Console.WriteLine("{0} {1} isn't so Smart :( ");
    }
    Console.WriteLine("Press Enter to Close");

    Button = Console.ReadLine();
}
Вам не нужны внешние скобки набора здесь - они не служат никакой цели. Вы используете их только тогда, когда вы "группируете вместе" операторы для выполнения - в методе, например, цикле или условном операторе. Добавление их "наугад" не делает ваш код более читабельным!

Как новичок, используйте их для каждого условного обозначения и отступа вашего кода:
static void Main(string[] args)
    {
    Console.WriteLine("what is your name?");
    string Name = Console.ReadLine();
    Console.WriteLine("what is your family name?");
    string Family = Console.ReadLine();
    int Answer = 54;

    Console.WriteLine("whats 9+45?");
    if (Answer == 54)
        {
        Console.WriteLine("{0} {1} is Smart! :D ");
        }
    else
        {
        Console.WriteLine("{0} {1} isn't so Smart :( ");
        }
    Console.WriteLine("Press Enter to Close");

    string Button = Console.ReadLine();
    }
Или вот так:
static void Main(string[] args)
{
    Console.WriteLine("what is your name?");
    string Name = Console.ReadLine();
    Console.WriteLine("what is your family name?");
    string Family = Console.ReadLine();
    int Answer = 54;

    Console.WriteLine("whats 9+45?");
    if (Answer == 54)
    {
        Console.WriteLine("{0} {1} is Smart! :D ");
    }
    else
    {
        Console.WriteLine("{0} {1} isn't so Smart :( ");
    }
    Console.WriteLine("Press Enter to Close");

    string Button = Console.ReadLine();
}
Обратите внимание, что я переместил определение переменных туда, где вы собираетесь их использовать - это просто облегчает понимание того, что происходит, когда вы их действительно используете. С небольшими методами, подобными этому, это не имеет большого значения, но по мере их роста становится больно пробираться через страницы кода, чтобы найти определение. Это также предотвращает их использование, когда они находятся "вне области действия" и сообщения об ошибках, которые это вызывает.

Кроме того, имена локальных переменных должны начинаться со строчных букв:
        static void Main(string[] args)
            {
            Console.WriteLine("what is your name?");
            string name = Console.ReadLine();
            Console.WriteLine("what is your family name?");
            string family = Console.ReadLine();
            int answer = 54;
...

И ваша следующая проблема-это ваши заявления WriteLine:
    Console.WriteLine("{0} {1} is Smart! :D ");
    }
else
    {
    Console.WriteLine("{0} {1} isn't so Smart :( ");
    }
Вы говорите writeline, чтобы включить переменные значения, но вы не предоставляете переменные! Либо сделайте это:
    Console.WriteLine("{0} {1} is Smart! :D ", name, family);
    }
else
    {
    Console.WriteLine("{0} {1} isn't so Smart :( ", name, family);
    }
Или вот это
    Console.WriteLine($"{name} {family} is Smart! :D ");
    }
else
    {
    Console.WriteLine($"{name} {family} isn't so Smart :( ");
    }
Если вы используете последнюю версию Visual Studio.


TheRealSteveJudge

Это ценные советы! 5*