Задать вопрос
@Headache69
Учу C#

Какое решение задачи по циклам будет правильным?

Задача

Напишите простейшую программу которая выводит заданное пользователем сообщение, заданное пользователем количество раз.
Доп.условие.
Программа будет выполняться до тех пор, пока не будет введено слово EXIT.

Написал нижеприведенный код, но понимаю, что можно было сделать более лаконичнее, напишите свои варианты выполнения данной задачи.
код
Console.WriteLine(" Введите фразу");
string userInputletter = Console.ReadLine();
Console.WriteLine("Введите количество повторений");
int userInputNumber = Convert.ToInt32(Console.ReadLine());
 int i = 0;

            while (i < userInputNumber)
            {
                if (userInputletter == "EXIT")
                {
                    Console.WriteLine("Выход из цикла");
                    break;
                }
                else
                {
                    Console.WriteLine(userInputletter);
                    i++;
                }
            }
  • Вопрос задан
  • 348 просмотров
Подписаться 1 Простой 5 комментариев
Решения вопроса 2
1. Определяемся с тем, что от нас хотят. Требования можно представить в виде такого псевдокода :)
повторять всегда {
   сообщение = прочитать();
   если сообщение = "EXIT" то выйти;
   сообщение2 = прочитать();
   если сообщение2 = "EXIT" то выйти;
   количество_повторений = прочитать_число(сообщение2);
   повторять количество_повторений раз {
     напечатать(сообщение);
   }
}


2. Переводим буквально на C#:
while(true) {
  Console.WriteLine("Введите сообщение");
  var message = Console.ReadLine();
  if (message == "EXIT") {
    return;
  }
  Console.WriteLine("Введите количество повторений");
  var message2 = Console.ReadLine();
  if (message == "EXIT") {
    return;
  }
  var count = int.Parse(message2); // по хорошему, надо бы как-нибудь обработать, если пользователь ввёл не число. В таком виде программа просто упадёт.
  for(var i=0; i<count; i++) {
    Console.WriteLine(message);
  }
}
Ответ написан
Комментировать
Griboks
@Griboks Куратор тега C#
Очень неоднозначное условие.

Напишите простейшую программу

Что подразумевается под простейшей? Возможно, эта фраза просто подчёркивает вашу глупость...

заданное пользователем сообщение, заданное пользователем количество раз

Непонятно, как именно пользователь задаёт эти параметры. Похоже, что речь идёт о stdin.

В итоге можно предположить такую программу:
using System;
class HelloWorld {
    
    static string ReadInput() {
        var input = Console.ReadLine();
        if(input=="EXIT") throw new Exception(); // ну или просто выход
        return input;
    }
        
    static (string,int) GetMessage() => (ReadInput(), Convert.ToInt32(ReadInput()));
    
    static void Main() {
        string message;
        int i,n;
        while(true) {
            (message, n) = GetMessage();
            for(i=0;i<n;i++) Console.WriteLine(message );
        }
    }
}
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы