2014-07-16 3 views
1

Я новичок в программировании, и я начал с C# недавно. Мой вопрос: как мне вернуться к началу этой небольшой программы, если пользователь вводит меньшее число во второй слот?C# вернуться к началу программы

вот код:

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

    namespace FizzBuzz 
    { 
    class Program 
    { 
     static void Main(string[] args) 
    { 



     Console.Write("Starting number?  -> "); 
     int number1 = int.Parse(Console.ReadLine()); 


     Console.Write("Ending number?  -> "); 
     int number2 = int.Parse(Console.ReadLine()); 


     if (number1 >= number2) 
     { 
     Console.WriteLine("Starting number has to be smaller than the ending number!"); 

     } 

     var number = new Queue<int>(); 
     number.Enqueue(9999); 
     int fizzorbuzz = number.Dequeue(); 



     for (int i = number1; i < number2; i++) 
     { 
      number.Enqueue(i); 
     } 

     foreach (int i in number) 
     { 
      if (i % 3 == 0 && i % 5 == 0) 
      { 
       Console.WriteLine("FIZZBUZZZ"); 
      } 
      else if (i % 5 == 0) 
      { 
       Console.WriteLine("Buzz!"); 
      } 
      else if (i % 3 == 0) 
      { 
       Console.WriteLine("Fizz!"); 
      } 
      else 
      { 
       Console.WriteLine(i); 
       break; 
      } 
      } 
     } 
    } 
    } 
+0

Используйте [время цикла] (http://msdn.microsoft.com/en-gb/library/2aeyhxcd. aspx) и только вырваться из этого цикла, если пользователь выполняет действие, которое должно заставить приложение выйти (что вам необходимо принять). Просто будьте осторожны при кодировании цикла while, чтобы убедиться, что у вас нет бесконечного цикла, хотя, очевидно, есть способы принудительно закрыть приложение в любом случае – musefan

+0

Хотя (userEnteredValue <второй слот) – Ralt

+0

Вы также можете использовать int.TryParse; –

ответ

1

Я придумал решение, основанное на всем полезном коде, который я получил от вас всех.

Это то, что я имел в виду, это работает точно так же, как я хотел:

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

namespace FizzBuzz 
{ 
class Program 
{ 
    static void Main(string[] args) 
    { 

     int smallerNumber = 0; 
     int biggerNumber = 0; 

     bool running = true; 

     while (running) 
     { 
      Console.Write("Starting number?  -> "); 
      smallerNumber = int.Parse(Console.ReadLine()); 


      Console.Write("Ending number?  -> "); 
      biggerNumber = int.Parse(Console.ReadLine()); 


      if (smallerNumber >= biggerNumber) 
      { 
     Console.WriteLine("Starting number has to be smaller than the ending number!"); 

      } 
      else 
      { 
       running = false; 
      } 
     } 

     var number = new Queue<int>(); 
     number.Enqueue(9999); 
     int fizzorbuzz = number.Dequeue(); 
     for (int i = smallerNumber; i < biggerNumber; i++) 
     { 
      number.Enqueue(i); 
     } 
     foreach (int i in number) 
     { 
      if (i % 3 == 0 && i % 5 == 0) 
      { 
       Console.WriteLine("FIZZBUZZZ"); 
      } 
      else if (i % 5 == 0) 
      { 
       Console.WriteLine("Buzz!"); 
      } 
      else if (i % 3 == 0) 
      { 
       Console.WriteLine("Fizz!"); 
      } 
      else 
      { 
       Console.WriteLine(i); 
      } 
     } 
    } 
} 
} 
0
int number1; 
int number2; 
do{  
Console.Write("Starting number?  -> "); 
number1 = int.Parse(Console.ReadLine());    

Console.Write("Ending number?  -> "); 
number2 = int.Parse(Console.ReadLine()); 

if (number1 >= number2) 
{ 
    Console.WriteLine("Starting number has to be smaller than the ending number!"); 
}     
} 
while (number1 >= number2);   
+0

Состояние в то время как неправильное..OP хочет меньшее число во втором номере – Neel

+0

Да, в тексте в вопросе говорится, что, но сообщение, которое он показывает, говорит, что первое число должно быть меньше. –

-1

enter image description here Вы можете использовать что-то вроде петли do..while, как показано ниже: -

int number1, number2; 
    do{  
     Console.Write("Starting number?  -> "); 
     number1 = int.Parse(Console.ReadLine()); 


     Console.Write("Ending number?  -> "); 
     number2 = int.Parse(Console.ReadLine()); 

    }while (number1 <= number2); 
    { 
     Console.WriteLine("Starting number has to be smaller than the ending number!"); 
    } 
+0

почему нисходящий? – Neel

0

В дополнение к простой while петли, рассмотреть также этот сценарий многоразового использования

static void Main(string[] args) 
{ 
    while(DoJob()) {} 
} 

static bool DoJob() 
{ 
    ... 
     return true; // want restart 
    ... 
    return false; // want exit 
} 
Смежные вопросы