Member 13335355 Ответов: 4

Получение ошибки"} ожидается"


Компилятор выдает ошибку"} expected". Помочь?

вот мой код до сих пор:
namespace SharedProject1
{
    class Class1
    {
        public static void Main()
        {
            System.Console.WriteLine("Hello, World! who are you?");
            string whois = Console.ReadLine();
            Console.WriteLine("Hello {0}, i am a hello world program. what is your age?", whois);
            string age = Console.ReadLine();
            int age2;
            Int32.TryParse(age, out age2);
            int old = 25;
            if (old < age2) ;
            Console.WriteLine("{0} years old, Golden years eh?", age2);
                else;
            Console.WriteLine("{0} years old, Ah, i see. In your prime!", age2);
        }
    }
}


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

Я перепробовал все, что мог придумать, но понятия не имею, что с ним происходит! :(

4 Ответов

Рейтинг:
24

Graeme_Grant

Вот в чем ваша проблема:

if (old < age2) ;
Console.WriteLine("{0} years old, Golden years eh?", age2);
	else;
Console.WriteLine("{0} years old, Ah, i see. In your prime!", age2);

Простая синтаксическая ошибка. Поправка такова:
if (old < age2)
{
	Console.WriteLine("{0} years old, Golden years eh?", age2);
}
else
{
	Console.WriteLine("{0} years old, Ah, i see. In your prime!", age2);
}


Рейтинг:
2

radha patil

ПРИВЕТ ПОПРОБУЙ ЭТО

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace test
{
    class Program
    {
        
        public static void Main()
        {
            System.Console.WriteLine("Hello, World! who are you?");
            string whois = Console.ReadLine();
            Console.WriteLine("Hello {0}, i am a hello world program. what is your age?", whois);
            string age = Console.ReadLine();
            int age2;
            Int32.TryParse(age, out age2);
            int old = 25;
            if (old < age2) 
            Console.WriteLine("{0} years old, Golden years eh?", age2);
                else
            Console.WriteLine("{0} years old, Ah, i see. In your prime!", age2);
        }
         
    }
}


Рейтинг:
2

GrpSMK

if (old < age2)
{
	Console.WriteLine("{0} years old, Golden years eh?", age2);
}
else
{
	Console.WriteLine("{0} years old, Ah, i see. In your prime!", age2);
}


CHill60

Это копия решения, опубликованного 5 дней назад. Не делай этого!

Рейтинг:
1

OriginalGriff

Я не вижу там этого сообщения - я вижу некоторые предупреждения и некоторые другие ошибки...

if (old < age2) ;
Точка с запятой завершает оператор if, поэтому вы должны получить предупреждение "возможный ошибочный пустой оператор". Уберите точку с запятой.
else;

Вы также получите ошибку "недопустимый термин выражения "else"", потому что точка с запятой завершает if, поэтому else не имеет ничего общего. Избавление от точки с запятой на if удалит эту точку, но также удалит точку с запятой на другом по той же причине.
В результате вы, вероятно, получите и другие сообщения, которые должны исчезнуть.

Пара предложений:
1) Установите "рассматривать предупреждение как ошибки" на "все" на вкладке "сборка" свойств проекта и установите "ошибки и предупреждения" на "уровень предупреждения" " 4 " на той же вкладке. Компилятор будет строже с вами, что поможет вам избавиться от проблем во время компиляции вместо того, чтобы позволять им вызывать много царапин в голове во время выполнения.
2) Конечно, в самом начале всегда используйте фигурные скобки везде, где это возможно: даже если if или else содержит только одну строку. Это значительно облегчает последующее редактирование без ошибок.
3) Когда вы пытаетесь разобрать число, проверьте возвращаемое значение - если оно возвращает false, то пользователь не ввел действительное число, и вы должны отреагировать на это.
Таким образом, ваш код, вероятно, должен выглядеть следующим образом:
class Class1
    {
    public static void Main()
        {
        System.Console.WriteLine("Hello, World! who are you?");
        string whois = Console.ReadLine();
        Console.WriteLine("Hello {0}, i am a hello world program. what is your age?", whois);
        string age = Console.ReadLine();
        int age2;
        if (!Int32.TryParse(age, out age2))
            {
            // Bad input
            Console.WriteLine("{0} is not a number!", age);
            }
        else
            {
            int old = 25;
            if (old < age2)
                {
                Console.WriteLine("{0} years old, Golden years eh?", age2);
                }
            else
                {
                Console.WriteLine("{0} years old, Ah, i see. In your prime!", age2);
                }
            }
        }
    }