Как зарегистрировать несколько значений в переменной? - PullRequest
0 голосов
/ 13 июля 2020

Я пытался отобразить все номера пар в al oop, которые идут от 1 до 100 и каждый раз увеличиваются на 1. Я пытаюсь отобразить номера пар, как в этом блоке кода «if».

for (var i = 0; i < 100; i++)
{
    if (i % 2 == 0)
    {
        Console.WriteLine(i);
    }

Но я хочу сохранить их в строке с именем «losPares», которую я пытаюсь отобразить таким образом :

static void Main(string[] args)
{
    var counter = 0;
    var losPares = 0;
    for (var i = 0; i < 100; i++)
    {
        if (i % 2 == 0)
        {
            counter++;
            losPares = i;
        }
    }
    Console.WriteLine("hay " + counter + " numeros pares.");
    Console.WriteLine("estos son " + losPares);
}

Что довольно странно. В первом примере кода консоль распечатает все номера пар. Во втором он напечатает только последний из них, 98. Я действительно не знаю, что делать, попытался создать массив вместо переменной, но когда я пытаюсь сохранить в нем «i», я получаю следующую ошибку:

Невозможно неявно преобразовать тип int в int [] '

aAd, если я пытаюсь преобразовать «i» в виде строки, когда losPares является массивом вместо переменная, например:

int[] losPares = new int[100];
for (var i = 0; i < 100; i++)
{
    if (i % 2 == 0)
    {
        counter++;
        losPares = Convert.ToBase64CharArray(i);
    }

Я получаю следующую ошибку.

CS1501 Нет перегрузки для метода ToBase64CharArray, принимает 1 аргумент

Я действительно не знаю, что мне делать. Большое спасибо за чтение!

Ответы [ 3 ]

1 голос
/ 13 июля 2020

Ваша консоль печатает последний элемент, потому что вы присваиваете значение i losPares в фрагменте кода sencond. Этот оператор присваивания присваивает значение от i до losPares на каждой итерации, где выполняется условие i % 2.

Вместо присвоения значения целому числу используйте List для хранения i и в конце для l oop вывести все элементы из списка.

public static void Main(string[] args)
{
    var losPares = List<int>();
    var counter = 0;
    for (var i = 0; i < 100; i++)
    {
        if (i % 2 == 0)
        {
            counter++;
            //Below line was executing everytime and in each execution this line was assigning value of i to losPares
            //losPares = i; 
            losPares.Add(i);
        }
    }
    Console.WriteLine("hay " + counter + " numeros pares.");
    Console.WriteLine("estos son " + string.Join(Environment.NewLine, losPares));
}
0 голосов
/ 13 июля 2020

В соответствии с моим пониманием, ниже приведены мои дубли. Сначала печатаются все значения, потому что часть печати находится внутри l oop, но во втором оба оператора печати находятся за пределами блока for l oop, из-за чего он сохраняет последнее значение l oop и отображает его.

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

string temp = ''; а затем для l oop вы можете сделать что-то вроде temp + = i + ''; Лучше использовать построитель строк из-за неизменяемого свойства строки.

Если вы хотите использовать массив. Ниже приведен способ присвоения значений в массиве.

int [] losPares = new int [100];

В a for l oop вы можете использовать losPares [i] = i ; Это заполнит ваш массив.

0 голосов
/ 13 июля 2020

Целое число будет иметь только 1 значение и не может иметь несколько значений одновременно. Если вы хотите отслеживать все значения из l oop, вам нужно будет сохранить все значения в коллекции / списке или массиве. В следующем примере показано, как сохранить их в списке.

var counter = 0;
var losPares = new List<int>();
for (var i = 0; i < 100; i++)
{
    if (i % 2 == 0)
    {
        counter++;
        losPares.Add(i);
    }
}
Console.WriteLine("hay " + counter + " numeros pares.");
Console.WriteLine("estos son " + string.Join(" ", losPares));

Вы можете создать список целых чисел (losPares), а затем отобразить его в конце. Что вы делаете, так это присваиваете значение losPares и затем переопределяете его снова и снова до последней итерации в вас l oop. Вот почему ваши losPares всегда имеют последнее значение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...