2015-10-19 2 views
1

Я немного застрял с моими петлями. Обе части кода работают отлично сами по себе, однако я не могу заставить оба цикла while работать. Был бы признателен за любую помощь на всех:Вырыв из цикла while и в другой C#

using System; 
namespace week5task3 { 
    class Program { 
     public static void Main(string[] args) 

     { 
      double PriceEvery1 = 5; 
      double PriceEvery2 = 4; 
      double PriceEvery3 = 2.5; 
      double Quantity = 10; 
      int UserCounter = 0; 

      Console.WriteLine("\n\nWidget Price Chart\n\n"); 
      Console.WriteLine("Quantity of Widgets\t\tPrice"); 

      while (UserCounter <= 100) { 
       double Price1 = PriceEvery1 * Quantity; 
       double Price2 = PriceEvery2 * Quantity; 
       double Price3 = PriceEvery3 * Quantity; 

       if (Quantity <= 50) { 
        Console.WriteLine("\t{0}\t\t\t{1:C}", Quantity, Price1); 
       } 

       if (Quantity >= 51 && Quantity <= 80) { 
        Console.WriteLine("\t{0}\t\t\t{1:C}", Quantity, Price2); 
       } 

       if (Quantity >= 81 && Quantity <= 100) { 
        Console.WriteLine("\t{0}\t\t\t{1:C}", Quantity, Price3); 
       } 
       Quantity += 10; 
      } 

      while (UserCounter >= 0) { 
       try { 
        Console.WriteLine("Enter the amount of widgets you would like to purchase or press q to quit"); 
        string temp = Console.ReadLine(); 
        if (temp == "q") break; 
        if (temp == "Q") break; 

        int.TryParse(temp, out UserCounter); 

        double UserPrice; 

        if (UserCounter <= 50) { 
         UserPrice = UserCounter * 5; 
         Console.WriteLine("The price is {0:C}", UserPrice); 
        } 

        if (UserCounter >= 51 && UserCounter <= 80) { 
         UserPrice = UserCounter * 4; 
         Console.WriteLine("The price is {0:C}", UserPrice); 
        } 

        if (UserCounter > 80) { 
         UserPrice = UserCounter * 2.5; 
         Console.WriteLine("The price is {0:C}", UserPrice); 
        } 


       } catch (Exception) { 
        Console.WriteLine("You have entered an incorrect value. Please enter a number or press q to quit"); 
       } 
      } 
     } 
    } 
} 
+1

Вы никогда не увеличиваете 'UserCounter' или не выходите из первого цикла, чтобы он никогда не заканчивался. – Cyral

+0

Спасибо за ваш ответ! Я попытался оба разбить; и продолжить, но ни один из них не был успешным ... –

+0

Возможно, вы имели в виду 'while (Quantity <= 100)'? Имейте в виду, я понятия не имею, что вы на самом деле хотите, поэтому вам нужно будет объяснить, что должно делать ваше приложение. – Cyral

ответ

2

Использование while (Quantity <= 100) вместо UserCounter <= 100. Это выйдет из цикла после 10 итераций печати цены.

Смежные вопросы