Используя любой цикл в C #, посчитайте от 0 до 20 с сообщением для каждой строки и для каждого числа, кратного 5, получите специальное сообщение - PullRequest
1 голос
/ 31 декабря 2011

В настоящее время я работаю над циклами (для, в то время, и делать в то время).Я понимаю основы и успешно смог сделать основы без особых усилий.В настоящее время я работаю над проблемой, которая выходит за рамки основ, где конечный результат покажет сообщение («Pass {0} in the loop»), где очевидно, что «{0}» - это цикл чисел.Однако я пытаюсь создать отдельное сообщение для тех чисел, которые делятся на 5 (5, 10, 15, 20).Могу ли я получить указатель в правильном направлении.Я поиграл с идеями использования выражения «если» или даже «foreach», но со вчерашнего дня мне не повезло найти возможный жизнеспособный вариант, или я просто не знал, как правильно его сформулировать.Ниже мой текущий код:

    static void Main(string[] args)
    {
        int i = 1;
        Console.WriteLine("Do while loop positive numbers");

        do
        {
            Console.WriteLine("Pass {0} in the loop", i++);

        } while (i <= 20);

        Console.ReadLine();
    }

Ответы [ 9 ]

3 голосов
/ 31 декабря 2011

Проверьте остаток оператора:%

В сочетании с оператором if все должно быть в порядке.

2 голосов
/ 31 декабря 2011

Не буду писать код для вас, но хотел бы дать подсказку

Вы можете использовать if condition внутри do while loop, чтобы проверить, является ли оно divisible by 5, затем отобразить специальное сообщение.Вы можете использовать оператор %, чтобы проверить, делится ли число на какое-то другое число или нет

 static void Main(string[] args)
    {
        int i = 1;
        Console.WriteLine("Do while loop positive numbers");

        do
        {

            Console.WriteLine("Pass {0} in the loop", i++);
            //if your number is divisible by 5 then display message 
        } while (i <= 20);

        Console.ReadLine();
    }
1 голос
/ 31 декабря 2011

просто проверьте, делится ли оно на 5

if(i%5==0)
  Console.WriteLine("{0} is divisible by 5",i);

% или оператор модулей используется для получения остатка от деления

на заметку, stackoverflow - не лучшее место для начала программирования, другие сайты или учебники более полезны

0 голосов
/ 18 марта 2018
using System;

namespace loop
{
    class Program
    {
        static void Main(string[] args)
        {
            int i= 1;//start
            while (i<=20)
            {
                Console.WriteLine(i);
                i++;
            }
            Console.ReadKey();
        }
    }
}

// Просто еще один способ взглянуть на проблему более упрощенным способом

0 голосов
/ 31 декабря 2011

Чтобы проверить, делится ли число на другое число, вы можете использовать оператор % или по модулю , вы можете использовать его так же, как оператор сложения или деления, a = c % b.
Оператор по модулю дает остаток от деления . Таким образом, если бы вы сделали 51 % 5, вы бы получили 1 , так как 5 входит в 51 десять раз с один оставшимся. Поэтому, если при использовании оператора по модулю результат равен 0, первое число делится на второе без остатка.

Следовательно, вам нужно настроить if оператор , чтобы проверить, является ли модуль i 5 или что вам нужно. Существует множество руководств по операторам if, поэтому я не буду вдаваться в подробности кода.

Следующая команда проверит, делится ли I на 5, а затем запишет в Консоль, если это так. Добавьте это в свой цикл:

if(i % 5 == 0)
{
    Console.WriteLine("{0} is divisible by 5!", i);
}
0 голосов
/ 31 декабря 2011

Попробуйте использовать оператор % в своем выражении if.

if((i%5) == 0)
   divisible by 5 message
else
   the regular message 
0 голосов
/ 31 декабря 2011

Просто используйте оператор% и проверьте остаток от деления i% 5. Если это 0, то я делится на 5.

0 голосов
/ 31 декабря 2011

Цикл for

for( int i = 0; i <= 20; i++ )
{
    if( i % 5 == 0 && i > 0 )
    {
        Console.WriteLine( "{0} is divisible by 5.", i );
    }
}

До ... в то время как эквивалент

int x = 0;

do
{
    if( x % 5 == 0 && x > 0 )
    {
        Console.WriteLine( "{0} is divisible by 5.", x );
    }

    x++;
}
while( x <= 20 );

Обратите внимание, что я предпочитаю начинатьЦиклы с нулем, если нет веских причин, чтобы сделать иначе.Индексы начинаются с нуля в .NET, и (IMO) хорошо написать код, который следует этому шаблону.

Как все указывают, здесь важен оператор модуля (%).

http://msdn.microsoft.com/en-us/library/0w4e0fzs.aspx

И для полного понимания того, почему оператор модуля .NET действительно является оператором остатка:

http://blogs.msdn.com/b/ericlippert/archive/2011/12/05/what-s-the-difference-remainder-vs-modulus.aspx

0 голосов
/ 31 декабря 2011

Вы должны сделать:

if (i%5==0)
print your special message
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...