JJTY Ответов: 3

Как повторить цикл дважды?


Упражнение заключается в следующем:

Напишите программу на языке C#, которая принимает число в качестве входных данных и отображает его четыре раза подряд (разделенные пробелами), а затем четыре раза в следующей строке, без разделения. Вы должны сделать это два раза: использовать консоль. Напишите, а затем используйте {0}. Зайдите в редакцию
Test Data:
Enter a digit: 25
Expected Output:
25 25 25 25
25252525
25 25 25 25
25252525

Я уже создал решение, но хочу использовать метод цикла. Вот первое, что я сделал (это сработало):

using System;
					
public class Program
{
	public static void Main()
	{
		Console.WriteLine("Enter a number: ");
		int x =Convert.ToInt32(Console.ReadLine());
	        		
		Console.WriteLine("The output is: ");
		Console.WriteLine("{0} {0} {0} {0}", x);
		Console.WriteLine("{0}{0}{0}{0}", x);
		Console.WriteLine("{0} {0} {0} {0}", x);
		Console.WriteLine("{0}{0}{0}{0}", x);
		
		Console.ReadLine();
		
	}
}


Что я уже пробовал:

А вот и мой неполный код:

public static void Main()
	{
		Console.WriteLine("Enter a number: ");
		int x =Convert.ToInt32(Console.ReadLine());
	    int i = 0;
		Console.WriteLine("The output is: ");
		
		do 
		{
		  Console.Write(x+ " ");
		  i++;
			
		}
		while (i<=3);
			Console.Write("\n{0}{0}{0}{0}", x);
		
			
	}

Выход из этого просто: (25, например, является пользовательским вводом)
Enter a number: 25
The output is: 
25 25 25 25 
25252525

Большое вам спасибо!

F-ES Sitecore

Для начала погуглите, как использовать "while" и сравните примеры с вашими. Ваш цикл while на самом деле вообще ничего не делает, вы должны быть в состоянии понять, почему из документации. Также посмотрите на цикл "for", так как он лучше подходит для циклирования заданного количества раз.

CHill60

Er - цикл while повторяется 4 раза для i = 0,1,2,3. Я согласен, что цикл "для" Был бы лучше

F-ES Sitecore

Ничто не меняется i, и оператор while имеет точку с запятой после него, что означает, что он просто выполняет бит while, а не строку кода после него. Увидимся после урока :D

Sandeep Mewara

Это отступ линии там создает путаницу.
в то время как точка с запятой делает свою работу вместе с do. Строка рядом с while предназначена только один раз.

Мне тоже нужно наверстать упущенное после занятий? :П

CHill60

:смеяться:

3 Ответов

Рейтинг:
18

Sandeep Mewara

Было бы несколько способов. Глядя на ваш запрос и код, я предполагаю, что вы очень просты и только начали кодировать. Таким образом, одним из самых простых способов для вас достичь результата только в вашем коде будет:

noOfTimes = 2;
for(int j=0; j< noOfTimes; j++)
{
    do 
    {
      Console.Write(x+ " ");
      i++;	
    }
    while (i<=3);
    
    Console.Write("\n{0}{0}{0}{0}", x);
}

Читайте о циклах в C#: for, while, do-while.

Рекомендации:
для инструкции - ссылка на C# | Microsoft Docs[^]
while - Справочник по C# | Microsoft Docs[^]
do - C# Reference | Microsoft Docs[^]

Попробуйте то же самое заявление о проблеме после прочтения выше и посмотрите, достигнете ли вы того же самым лучшим способом.


JJTY

@Sandeep Да! Вы правы, ха-ха, это всего лишь мой 2-й день изучения c#, я чувствую себя плохо huhu XD. Теперь я понимаю, чего мне не хватает. Большое вам спасибо, я буду больше изучать петли. Спасибо всем за ваши комментарии. Сандип Мевара и F-ES Sitecore!

Рейтинг:
10

JJTY

Я понял!

using System;
					
public class Program
{
	public static void Main()
	{
		int i=0;
		int j=0;
				
		for (j=0; j<2;j++)
		{
			for (i=0; i<=4;i++)
			{
				Console.Write("{0,-3}","25");
			}
				Console.WriteLine("\n{0}{0}{0}{0}","25");			
		}
					
	}
}	


Спасибо Вам за всю вашу помощь! Я действительно ценю это <3


Рейтинг:
0

CHill60

Концепция, которую вы, возможно, ищете, такова вложенный цикл[^] то есть вам нужен внешний цикл для 2 итераций.

Как говорит @f-es-sitecore, цикл for лучше, когда вы заранее знаете, сколько раз вы хотите сделать цикл.

Я лично, вероятно, сделал бы что - то вроде- псевдокод только здесь

//Set up a for-loop for 2 iterations
//output the number four times with spaces
//output the number four times without spaces
Console.Write("\n{0}{0}{0}{0}", x);
//End of the for-loop
Обратите внимание, что вы уже сделали бит "без пробелов" правильно - но он должен быть внутри цикла, а не снаружи него


BillWoodruff

+5 прекрасный пример обучения, а не написания кода операции для них.

CHill60

Спасибо - это то, как я учусь лучше всего, поэтому я стараюсь передавать его дальше / платить вперед