Bad-Coder
@Bad-Coder
Srenior Pityhon Developer

Где логическая ошибка в коде?

Добрый день, я ноль в Шарпе. (Конечно-же смотрю уроки).
Так-вот, где тут какая-то ошибка?
using System;

namespace Learning
{
    class Program
    {
        public static void Main(string[] args)
        {
            int Age;
            Console.Write("Введите ваш возраст: ");
            Age = Convert.ToInt32(Console.ReadLine());
            if (Age < 18)
                Console.WriteLine("Вам меньше 18-лет! Приходите Позже!");
            if (Age > 18)
                Console.WriteLine("Добро пожаловать!");
            if (Age == 18)
                Console.WriteLine("Добро пожаловать!");
            else
                Console.WriteLine("Так сколько вам лет-то?!");
            Console.ReadKey();
        }
    }
}


Почему если я ввожу 19, мне выводиться в консоль "Добро пожаловать!" (Это нормально), но и еще "Так сколько-вам лет то?!"?
Почему так?
  • Вопрос задан
  • 79 просмотров
Решения вопроса 2
@Morpeks
Так происходит, потому что оператор else работает только с if (Age == 18):
if (Age == 18)
    Console.WriteLine("Добро пожаловать!");
else
    Console.WriteLine("Так сколько вам лет-то?!");

Если вы хотите, чтобы оператор else работал со ВСЕМИ операторами if, то используйте else if:
if (Age < 18)
    Console.WriteLine("Вам меньше 18-лет! Приходите Позже!");
else if (Age > 18)
    Console.WriteLine("Добро пожаловать!");
else if (Age == 18)
    Console.WriteLine("Добро пожаловать!");
else
    Console.WriteLine("Так сколько вам лет-то?!");
Ответ написан
@vabka Куратор тега C#
Токсичный шарпист
У вас сначала срабатывает
if (age > 18)
    Console.WriteLine("Добро пожаловать!");

А потом ветка else
if (age == 18)
    Console.WriteLine("Добро пожаловать!");
else // всё что не 18
    Console.WriteLine("Так сколько вам лет-то?!");


Надо написать
Console.Write("Введите ваш возраст: ");
var age = int.Parse(Console.ReadLine());
if (age < 18) {
  Console.WriteLine("Вам меньше 18-лет! Приходите Позже!");
}
else {
  Console.WriteLine("Добро пожаловать!");
}


Вывод: читайте внимательнее свой код.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы