2016-03-22 19 views
0

'u çalıştırmıyorsa Aşağıda, "c" anahtar kodundaki kodum yürürlükten kaldırılmıyor. Hiçbir şey olmuyor! Girdi "q" ise, isOwner = false sadece iyi yürütülür. Bu benim için mantıklı değil. Lütfen yardım et!Basit anahtar kutusunun içindeki kod veya deyim

// Customer information 
string customerName = ""; 
string customerPassword = ""; 
int customerCredits = 0; 

string input = ""; 

Console.WriteLine ("Welcome to my console Pet Store"); 
Console.WriteLine ("Type in your name?"); 
customerName = Console.ReadLine(); 
Console.WriteLine ("Type in your password?"); 
customerPassword = Console.ReadLine(); 

if (customerName == "owner" && customerPassword == "1234") { 

    bool isOwner = true; // Launch the owner interface when isOwner is true 

    while (isOwner) { 
     Console.Clear(); 
     Console.WriteLine ("You are logged in as Owner"); 
     Console.WriteLine ("[q] Quit"); 
     Console.WriteLine ("[c] Create new product"); 
     Console.WriteLine ("[d] Create new animal"); 
     Console.WriteLine ("[i] View all items in the store"); 
     Console.WriteLine ("[t] View all customers"); 

     // string input; 
     input = Console.ReadLine(); 

     switch (input) { 
      case "q": 
       isOwner = false; 
       break; 
      case "c": 
       Console.Clear(); 
       Console.WriteLine ("What type of product do you want to create?"); 
       break; 
     } 
    } 
} // END of owner interface 

BTW: Aynı şeyi bir if ifadesiyle de denedim.

C# 'yı çok yeni kullanıyorum, eğer burada bariz bir şeyi görüyorsanız, benimle çıplak görünüyorum.

+0

The input = Console.ReadLine(); - Girdi yazıp o noktaya geldiğinde enter tuşuna basıyor musunuz? –

+2

Kodu dikkatli bir şekilde takip edin. "C" harfine ulaştığınızda, konsolu temizler ve hangi ürünün oluşturulacağını sorarsınız. Sonra * hemen * while döngüsünün başlangıcına dönün ('while (isOwner)'), konsolu tekrar temizleyin ve ardından menüyü yazdırın. Kodunuz * yürütüyor, ancak konsolu temizliyorsunuz bu kadar çabuk görmeyeceksiniz. – Rob

+0

hata ayıklanırken Console.Clear() öğesini kaldırmanızı öneririm, bu gerçekten sorunun ne olduğunu bulmama yardımcı oldu, teşekkürler! – Kvisgaard

cevap

0

Kod çalışıyor, komut istemini görüntüledikten sonra beklemiyor. Komutu yazdırdıktan sonra Console.ReadKey(); gibi bir şey eklemeyi deneyin: Console.WriteLine("What type of product do you want to create?").

switch (input) { 
     case "q": 
      isOwner = false; 
      break; 
     case "c": 
      Console.Clear(); 
      Console.WriteLine("What type of product do you want to create?"); 
      Console.ReadKey(); 
      break; 
    } 
+0

evet, tam da bu, diğer teknikleri döngü ile denedikten sonra bulduğum şeydi. Benim kodumdan kurtuldu ama herhangi bir girdi beklemediği için çok hızlı bir şekilde sona erdi. Console.ReadLine(); işlenmiş – Kvisgaard

0

Garip görünüyor. Ama benim varsayımım var: char 'c' in ingilizce olması mümkün değil mi? Birçok dilin benzer harfleri vardır, ancak bu harflerin farklı kodları vardır.

'c' öğesini silmeye ve eng klavye düzeniyle tekrar yazmaya çalışın.