2016-11-19 3 views
0

У меня есть простой код, чтобы просто повеселиться, он должен был печатать весь алфавит, каждая буква была отделена друг от друга 100 пустыми строками ... Но это не печатает ни одной строки ....Консоль не печатает строки и/или слова

Примечание: Прежде чем я использовал код, подобный этому, и он работал (очевидно, другой был реальным кодом и не имел 100 строк) «alfabeto» = «alphabet» (португальское слово, I не собирался перевести 26 строк, если я мог бы просто сказать, что это)

namespace Alfabeto_das_100_linhas 
{ 
    class Inicial 
    { 
     static void Main(string[] args) 
     { 
      string[] alfabeto = new string[26]; 
      alfabeto[0] = "A"; 
      alfabeto[1] = "B"; 
      alfabeto[2] = "C"; 
      alfabeto[3] = "D"; 
      alfabeto[4] = "E"; 
      alfabeto[5] = "F"; 
      alfabeto[6] = "G"; 
      alfabeto[7] = "H"; 
      alfabeto[8] = "I"; 
      alfabeto[9] = "J"; 
      alfabeto[10] = "K"; 
      alfabeto[11] = "L"; 
      alfabeto[12] = "M"; 
      alfabeto[13] = "N"; 
      alfabeto[14] = "O"; 
      alfabeto[15] = "P"; 
      alfabeto[16] = "Q"; 
      alfabeto[17] = "R"; 
      alfabeto[18] = "S"; 
      alfabeto[19] = "T"; 
      alfabeto[20] = "U"; 
      alfabeto[21] = "V"; 
      alfabeto[22] = "W"; 
      alfabeto[23] = "X"; 
      alfabeto[24] = "Y"; 
      alfabeto[25] = "Z"; 

      for (int i = 0; i <= alfabeto.Length; i++) 
      { 
       Console.WriteLine(alfabeto[i]); 

       for(int iii = 0; i != 100; iii++) 
       { 
        Console.Write("\n"); 
       } 
       Console.WriteLine(); 
      } 
      Console.Read(); 
     } 
    } 
} 

ответ

1

Ваш внутренний цикл является неправильным:

  for(int iii = 0; i != 100; iii++) 
      { 
       Console.Write("\n"); 
      } 

В зависимости от значения i это ничего не сделает или не зациклится навсегда.

Оно должно быть:

  for(int iii = 0; iii < 100; iii++) 
      { 
       Console.Write(Environment.NewLine); 
      } 

В дополнении к фиксации вашего счетчика цикла, вы выводя строку\n, а не символ новой строки. Вы также можете просто использовать WriteLine с пустой строкой.

Теперь я снова смотрю, я вижу, что ваш внешний цикл тоже неправильный. Оно должно быть:

for (int i = 0; i < alfabeto.Length; i++) 

Если петля для подсчета, равной длине вы будете превышать длину массива - массив из 26 элементов имеет индексы от 0 до 25.

Если вы не уверенный, что делает внутренний цикл, я бы уменьшил конечный тест на что-то более управляемое (например, 5), чтобы вы могли точно видеть, сколько строк вставлено между каждой из ваших букв. Вы могли бы также выводить счетчик цикла (как отлаживать меры) в качестве дополнительной проверки

+1

И внешний тоже. Должно быть 'i elshev

+0

@elshev Я изменил, как вы (оба) сказал, и то же самое происходит ... Он продолжает добавлять новые строки бесконечно и без символов ... –

+0

@RodrigoGameiro, это работает для меня , Возможно, вы просто не можете видеть символы, потому что они разделены 100 пустыми строками. –

0

Также обратите внимание, что у вас есть 101 линии, а не 100. Должно быть:

for (int i = 0; i < alfabeto.Length; i++) 
{ 
    Console.WriteLine(alfabeto[i]); 
    for (int iii = 0; iii < 100; iii++) 
    { 
     Console.WriteLine(); 
    } 
} 
Console.Read(); 

Или вы можете упростить:

string s = new string('\n', 100); 
for (char ch = 'A'; ch <= 'Z'; ch++) 
{ 
    Console.WriteLine(ch); 
    Console.Write(s); 
} 
Console.Read(); 
+1

Это правильно, но и для хорошей практики ... используйте '\ r \ n' или' Environment.NewLine' вместо '\ n' для платформ, не относящихся к Unix – Jim

 Смежные вопросы

  • Нет связанных вопросов^_^