Професионална програма
Loading...
+ Нов въпрос
antonradev avatar antonradev 43 Точки

Проверка за въведени входни данни в конзолата. If - Else...?

Здравейте!

Пиша си домашното и в задачата за данните на служителя искам да направя да се въвеждат през конзолата, като им сложа и проверка дали са въведени. За сега без успех. Мога да изведа съобщение, че не са въведени данни и само Enter-а е натиснат с празен ред:

 

Console.WriteLine("Enter Employee`s First Name:");

string firstName = Console.ReadLine();

if (string.IsNullOrEmpty(firstName))
    {
        Console.WriteLine("Please enter the Employee`s First Name. It cannot be blank");
    }

 

Съобщението се извежда, но програмата продължава да се изпълнява напред и вече ме чака да въвеждам Last name-а. Не мога да я направя така, че докато не въведа First name да не продължава напред.

Опитах с return но пък това спира нацяло програмата от последващо изпълнение:

 

if (string.IsNullOrEmpty(firstName))
    {
        Console.WriteLine("Please enter the Employee`s First Name. It cannot be blank");
        return;
    }

 

В Elsa-a на If-а нищо не върши работа също, просто си е Else.

 

Някакви идеи?

 

(Сори за оцветяването на кода, но все още немога да форматирам параграф като код и импровизирам)

Тагове:
0
Programming Basics
antonradev avatar antonradev 43 Точки

Немога също да сложа целият ред:

 

 string firstName = Console.ReadLine();

 

в If-а, защото не ми дава да го използвам така и ми съобщава за грешка за използване на променливата в друг контекст

0
coaster avatar coaster 415 Точки

Един while loop ще ти свърши прекрасна работа :)

Console.WriteLine("Enter Employee`s First Name:");
string firstName = Console.ReadLine();
while (string.IsNullOrEmpty(firstName))
{
    Console.WriteLine("Please enter the Employee`s First Name. It cannot be blank");
    firstName = Console.ReadLine();
}

4
antonradev avatar antonradev 43 Точки

Мерси много! Верно! :)

0
dimitarstoyanov90 avatar dimitarstoyanov90 164 Точки

В if конструкцията, където проверяваш дали е NULL сложи : firstName = Console.ReadLine(); , и след което вече else . Даже както е споменато вече while цикълът е вариантът в този случай

2
dimitarstoyanov90 avatar dimitarstoyanov90 164 Точки

while (string.IsNullOrEmpty(firstName))
{
Console.WriteLine("Please enter the Employee`s First Name. It cannot be blank");
Console.WriteLine("Enter Employee`s First Name:");
firstName = Console.ReadLine();
}

1
HPetrov avatar HPetrov 822 Точки

По принцип If-Else statements са за проверка на нещо и при дадено условие прави нещо. Да, можеш да го направиш да ти провери дали е празен инпута и да поиска нов, но ако потребителя пак реши да не въведе нищо просто ще си продължи програмата без да я интересува много какво е въвел или в случая не е въвел човек. Решение на това е с while цикъл както колежката coaster предложи малко по-нагоре. Това ще провери в случая дали е празен инпута и ако е - влиза в цикъла и тормози постоянно потребителя да си въведе данните докато не го направи най-накрая :)

2
dimitarstoyanov90 avatar dimitarstoyanov90 164 Точки

Самата if конструкция , ако я проследиш с debuger ще видиш, че излизаш от конструкцията още след първата проверка и заради това ще провери само веднъж дали е Null

0