C# kodundaki hata nedir?

Ege Servi

Hectopat
Katılım
12 Haziran 2020
Mesajlar
13
Öncelikle herkese merhaba. C# öğrenmeye yeni başladım ve YouTube'dan gördüğüm bir giriş programını tek yazmak istedim. Yazdım ve ardından gördüm ki benim programım çalışmıyor. Videodakinin neredeyse aynısı olmuştu ama benimki çalışmıyordu. Nedenini anlamadığım bir biçimde while döngüsüne "true" yazdığımda çalışmıyor "false" yazığımda çalışıyordu ama yarım yamalak. Bir de kodda yer alan tüm breaklerle ilgili onları oraya koyamayacağım hakkında da hata verdi. Bilen biri yardım ederse çok sevinirim.
Kod:

Kod:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Başlangıç.
{
 internal class Program.
 {
 static void Main(string[] args)
 {
 int hak_sayisi = 3;
 Console.WriteLine(" kullanıcı adı ve şifreyi giriniz.");
 while (true) ;
 {

 Console.Write("İD:");
 string İD = Console.ReadLine();
 Console.Write("Şifre:");
 string SİFRE = Console.ReadLine();

 if (İD == "EGES70" && SİFRE == "abcd")
 {
 Console.WriteLine("Şifre doğru.Geçsiş hakkı kazandınız.");
 Console.ReadLine();
 break;

 }

 else.
 {
 Console.WriteLine("Kullanıcı adı veya şifreniz yanıl.Tekrar deneyiniz.");
 if (hak_sayisi > 0)
 {
 hak_sayisi -= 1;
 Console.WriteLine("Kullanıcı adı veya şifreniz yanlış. Kalan hakkınız:" + hak_sayisi + ".");
 }
 if (hak_sayisi == 0)
 {
 Console.WriteLine("Deneme hakkınız bitmiştir. Daha sonra tekrar deneyin");
 break;

 }

 }

 }
 Console.ReadLine();
 }
 }
}
 
Öncelikle herkese merhaba. C# öğrenmeye yeni başladım ve YouTube'dan gördüğüm bir giriş programını tek yazmak istedim. Yazdım ve ardından gördüm ki benim programım çalışmıyor. Videodakinin neredeyse aynısı olmuştu ama benimki çalışmıyordu. Nedenini anlamadığım bir biçimde while döngüsüne "true" yazdığımda çalışmıyor "false" yazığımda çalışıyordu ama yarım yamalak. Bir de kodda yer alan tüm breaklerle ilgili onları oraya koyamayacağım hakkında da hata verdi. Bilen biri yardım ederse çok sevinirim.
Kod:

Kod:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Başlangıç.
{
 internal class Program.
 {
 static void Main(string[] args)
 {
 int hak_sayisi = 3;
 Console.WriteLine(" kullanıcı adı ve şifreyi giriniz.");
 while (true) ;
 {

 Console.Write("İD:");
 string İD = Console.ReadLine();
 Console.Write("Şifre:");
 string SİFRE = Console.ReadLine();

 if (İD == "EGES70" && SİFRE == "abcd")
 {
 Console.WriteLine("Şifre doğru.Geçsiş hakkı kazandınız.");
 Console.ReadLine();
 break;

 }

 else.
 {
 Console.WriteLine("Kullanıcı adı veya şifreniz yanıl.Tekrar deneyiniz.");
 if (hak_sayisi > 0)
 {
 hak_sayisi -= 1;
 Console.WriteLine("Kullanıcı adı veya şifreniz yanlış. Kalan hakkınız:" + hak_sayisi + ".");
 }
 if (hak_sayisi == 0)
 {
 Console.WriteLine("Deneme hakkınız bitmiştir. Daha sonra tekrar deneyin");
 break;

 }

 }

 }
 Console.ReadLine();
 }
 }
}
Hocam bazı alanlara noktalı virgül yerine nokta koymuşsunuz. Bunu düzeltip tekrar dener misiniz?
 
Türkçe karakterleri çıkardım, else sonrasındaki noktayı, while döngüsü sonrasındaki ; karakterini çıkardım, bu haliyle çalışıyor gibi görünüyor.

Kod ile ilgili sorununuz var ise;
Mümkünse herkesin kolayca çalıştırabilmesi için, internette kolayca bulunabilecek online derleyicilerde çalışabilecek hale getirin, mesela benim aşağıya yapıştırdığım kod örneğin Online C# Compiler (Editor) gibi yerlere de yapıştırılınca çalışabilir durumda, böylece soruyu sorduğunuz kişiler daha kolayca sorunu bulabilir.

while (true) ;
yazarsanız sonsuz döngüye girer, while sonrasında bir kod bloğu olmadan ; konduğu için sonsuz kere hiçbir şey yapmadan döngü çalışır. else sonrasındaki . karakteri syntax error zaten.





using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace baslangic
{
internal class Program
{
static void Main(string[] args)
{
int hak_sayisi = 3;
Console.WriteLine(" kullanıcı adı ve şifreyi giriniz.");
while (true)
{

Console.Write("İD:");
string ID = Console.ReadLine();
Console.Write("Şifre:");
string SIFRE = Console.ReadLine();

if (ID == "EGES70" && SIFRE == "abcd")
{
Console.WriteLine("Şifre doğru.Geçsiş hakkı kazandınız.");
Console.ReadLine();
break;

}

else
{
Console.WriteLine("Kullanıcı adı veya şifreniz yanıl.Tekrar deneyiniz.");
if (hak_sayisi > 0)
{
hak_sayisi -= 1;
Console.WriteLine("Kullanıcı adı veya şifreniz yanlış. Kalan hakkınız:" + hak_sayisi + ".");
}
if (hak_sayisi == 0)
{
Console.WriteLine("Deneme hakkınız bitmiştir. Daha sonra tekrar deneyin");
break;

}

}

}
Console.ReadLine();
}
}
}
 
Son düzenleme:
Türkçe karakterleri çıkardım, else sonrasındaki noktayı, while döngüsü sonrasındaki ; karakterini çıkardım, bu haliyle çalışıyor gibi görünüyor.

Kod ile ilgili sorununuz var ise;
Mümkünse herkesin kolayca çalıştırabilmesi için, internette kolayca bulunabilecek online derleyicilerde çalışabilecek hale getirin, mesela benim aşağıya yapıştırdığım kod örneğin Online C# Compiler (Editor) gibi yerlere de yapıştırılınca çalışabilir durumda, böylece soruyu sorduğunuz kişiler daha kolayca sorunu bulabilir.

while (true) ;
yazarsanız sonsuz döngüye girer, while sonrasında bir kod bloğu olmadan ; konduğu için sonsuz kere hiçbir şey yapmadan döngü çalışır. else sonrasındaki . karakteri syntax error zaten.





using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace baslangic
{
internal class Program
{
static void Main(string[] args)
{
int hak_sayisi = 3;
Console.WriteLine(" kullanıcı adı ve şifreyi giriniz.");
while (true)
{

Console.Write("İD:");
string ID = Console.ReadLine();
Console.Write("Şifre:");
string SIFRE = Console.ReadLine();

if (ID == "EGES70" && SIFRE == "abcd")
{
Console.WriteLine("Şifre doğru.Geçsiş hakkı kazandınız.");
Console.ReadLine();
break;

}

else
{
Console.WriteLine("Kullanıcı adı veya şifreniz yanıl.Tekrar deneyiniz.");
if (hak_sayisi > 0)
{
hak_sayisi -= 1;
Console.WriteLine("Kullanıcı adı veya şifreniz yanlış. Kalan hakkınız:" + hak_sayisi + ".");
}
if (hak_sayisi == 0)
{
Console.WriteLine("Deneme hakkınız bitmiştir. Daha sonra tekrar deneyin");
break;

}

}

}
Console.ReadLine();
}
}
}
Teşekkürler hocam çok yardımcı oldunuz.
 

Technopat Haberler

Yeni konular

Yeni mesajlar

Geri
Yukarı