using System;
namespace Program
{
class Program
{
public static int getValue ()
{
int liczba = 0;
int.TryParse(Console.ReadLine(), out liczba);
return liczba;
}
public static int Raise (int salary)
{
int percent = (salary * 10) / 100;
int result = salary + percent;
return result;
}
static void Main ()
{
int expYears = 1;
Console.WriteLine("Ile zarabia pracownik?");
int returned = getValue();
while(true)
{
Console.Clear();
Console.WriteLine("Pracownik zarabia: {0} złotych", returned);
returned = Raise(returned);
Console.WriteLine("Pracownik otrzyma teraz: {0} złotych", returned);
Console.WriteLine("Staż pracownika (lata): {0}", expYears);
expYears++;
Console.Read();
Console.Read();
}
}
}
}
Chodzi o metodę Console.Read(), a dokładniej w przykładzie powyżej jeśli zostawię ją tylko raz na końcu pętli, to będą się dziwne rzeczy działy. Po kliknięciu powinno przejść do
int returned = getValue();
i czekać na reakcję. A tutaj od razu mam expYears np = 3. Po kliknięciu nagle 5.
Dopiero jak dam 2 razy Read, to działa jak powinno.
Dlaczego tak jest? To brzydko wygląda w kodzie