[C#] Console.Read() dwa razy? 4103 4

O temacie

Autor MajkeI

Zaczęty 19.11.2014 roku

Wyświetleń 4103

Odpowiedzi 4

MajkeI

MajkeI

Użytkownicy
Front End Developer
posty698
Propsy169
Profesjabrak
  • Użytkownicy
  • Front End Developer

MajkeI

[C#] Console.Read() dwa razy?
2014-11-19, 21:37(Ostatnia zmiana: 2014-11-19, 21:39)
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.  o_0

Dopiero jak dam 2 razy Read, to działa jak powinno.

Dlaczego tak jest? To brzydko wygląda w kodzie :D
 


MajkeI

MajkeI

Użytkownicy
Front End Developer
posty698
Propsy169
Profesjabrak
  • Użytkownicy
  • Front End Developer
Wielkie dzięki, działa. A mógłbyś mi powiedzieć na czym polega różnica między tymi dwoma metodami? W sumie to nie wiem
 


MajkeI

MajkeI

Użytkownicy
Front End Developer
posty698
Propsy169
Profesjabrak
  • Użytkownicy
  • Front End Developer
 Chyba rozumiem, dzięki za pomoc
 


0 użytkowników i 1 Gość przegląda ten wątek.
0 użytkowników
Do góry