Почему этот код выводит 4321 в столбце? - PullRequest
0 голосов
/ 30 сентября 2019

Я беру некоторые тесты на C # онлайн и наткнулся на следующий код:

using System;
namespace ProgrammingExercise
{
class FindOutput
    {
     static void Main(string[] args)
     {
     int num= 1234, r;
     while (num > 0)
      {
          r = num % 10;
          num = num / 10;
          Console.WriteLine(+r);
      }

      }
    }
}

Я немного озадачен первой строкой внутри Main (). Значит ли это, что num = 1234 = r? Я также не понимаю, почему написано + г ... что это делает?

Редактировать

После комментариев это имеет больше смысла, и я пишу так, как я думаю, что это работает:

  1. , в то время как оценивается как истинное (1234> 0)
  2. r = 1234% 10 = 4
  3. num = 1234/10 = 123 (не может привести к 123,4, потому что num является целым числом)
  4. 4 напечатано .. . выполнение продолжается до тех пор, пока условие не станет ложным.

1 Ответ

4 голосов
/ 30 сентября 2019

Объявление

 int num= 1234, r;

является сокращением для

 int num= 1234;
 int r;

. Оно не присваивает r 1234, вы не можете изменить значение чисел в C #.

Префиксный оператор + не особенно полезен, так как он просто означает «сохранить текущий знак», в этом случае +r не имеет никакого другого эффекта для написания r самостоятельно.

...