C# prosty problem z petlą do while


(Edawdo) #1

Witam

dla kogos kto zna c# proszę niech mi powie, czemu mówi, ze" the name i does not exist in the current context " w przypadku drugiego i po while.

do

{

Console.WriteLine("Wpisz znak z klawiatuty ,aby nie gwiazdke: " );

char i = char.Parse(Console.ReadLine());

}

while ( i != '*');

Console.WriteLine("koniec petli");


(Sawyer47) #2

Bo definiujesz zmienną i wewnątrz pętli, a używasz jej w warunku. Musiałabyś zadeklarować zmienną przed ciałem pętli.


(Edawdo) #3

Czyli, że tak??

static void Main(string[] args)

{

char i;

do

{

Console.WriteLine("Wpisz numer z klawiatuty aby nie gwiazdke: ");

char i = char.Parse(Console.ReadLine());

}

while ( i != '*');

Console.WriteLine("koniec petli");

Wtedy pisze, że

A local variable named 'i' cannot be declared in this scope because it would give a different meaning to 'i', which is already used in a 'parent or current' scope to denote something else


(Sawyer47) #4

Prawie dobrze, że tak powiem. Tylko czy nie czytasz tych komunikatów błędów, przecież w nich jest zawarty cały opis problemu?! W ciele pętli zamiast deklaracji daj zwykłe przypisanie, i = ...


(Edawdo) #5

Acha !!

Dzięki za oświecenie. Pomoglo :wink:

POzdrawiam