2017-01-31 2 views
-2

Итак, у меня в настоящее время есть проблема, что я не могу увеличить свои переменные. Использование «i ++» в моем коде, кажется, ничего не делает, и использование любой другой формы приращения значения ничего не делает.Приращение переменной в C# не работает

static void Main(string[] args) 
{ 
    Console.WriteLine("Enter a number to see its times tables"); 
    int number = Convert.ToInt16(Console.ReadLine()); 
    int i; 

    for (i = 10; i == 10; ++i) 
    { 
     int output; 
     output = i * number; 
     Console.WriteLine(output); 
    } 
    Console.ReadKey(); 
} 

Все, что я пытаюсь сделать, это создать базовый цикл, но он просто застрял в бесконечном цикле, устанавливая свою переменную «я» 10 вызывает цикл, чтобы работать, как ее предполагается, но она выполняется только один раз , Часть цикла становится неактуальной.

+0

очень мало, им использовать его для вывода раз таблиц, чтобы переучиваться некоторые из этого, как я нету сделал что-нибудь в месяцах, больной понять, как показать все в секунду все еще разрабатывает, как использовать этот сайт. – Minimarshman

+2

Ваша установка не имеет ничего общего с проблемой. Это 100% -ная логическая проблема с тем, что вы написали. Для записи основное различие между VS Community и VS Enterprise - это действительно дополнительные функции для отладки и тестирования кода, а также некоторые дополнительные инструменты. Различные версии не компилируют код по-разному. – Adrian

+0

Google «сравнение C#» и «назначение C#», и прочитайте несколько руководств, а не просто пытайтесь их взломать. Ваше заявление 'for' бессмысленно, исходя из ваших заявленных ожиданий. –

ответ

3

Попробуйте

for (i = 0; i <= 10; i++) 

Ваше условие означает, что цикл выполняется неправильное число раз.

По неправильному номеру, смотрящему на ваше сообщение и различные попытки, это означает что-либо от нуля до «положительного» (но неправильного) количества раз.

Оператор if является составной инструкцией. В вашем случае оператор if состоит из трех подзапросов - инициализации, теста и приращения.

Когда выполняется инструкция if, эти три оператора выполняются в порядке.

Если тест возвращает false, цикл не вводится, поэтому, когда условие «i == 10», а инициализация «i = 1», цикл не выполняется вообще. Когда инициализация равна «i = 10», цикл выполняется один раз.

Подзапросы 2 и 3 выполняются после каждого выполнения содержимого цикла и до тех пор, пока оператор 2 разрешает true, цикл будет продолжать выполняться.

В нашем примере, используя условие 'i < = 10', будет выведено код в цикле 11 раз. 'i < 10' заставит его работать десять раз. Необходимо проявлять осторожность при выборе подзаголовка 2 (т. Е. Условия цикла). Вы должны убедиться, что начальное значение в инструкции 1 и приращение в инструкции 3 (или, альтернативно, изменение значения, сделанного внутри тела самого цикла) гарантируют, что условие в конечном итоге завершится с ошибкой.

Если нет, то код должен быть добавлен в цикл для обеспечения выхода цикла.

Это будет цикл до бесконечности

for (int x=0; x==0;) { 

} 

Это НЕ будет цикл до бесконечности

for (int x=0; x==0;) { 
    x++; 
} 

испытание и выйти из цикла может быть сделано, как показано ниже.

for (int x=0; x==0;) { 
    if (x==0) { 
    break; 
    } 
} 

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

+5

Не будет ли смысл 'i <10' или' i <= 10'? –

+0

Более конкретно, в его состоянии петля вообще не выполняется * – BradleyDotNET

+0

@BradleyDotNET Его проза отличается от его кода. Я отредактировал свой ответ, прочитав его более подробно. Посмотрите на историю. Я буду использовать его. – ccpgh

0

По Использование

(i = 0; i < 10; i++) 

Диапазон I будет составлять от 0 до 9

С помощью

(i = 0; i <= 10; i++) 

Диапазон I будет составлять от 0 до 10

При использовании

(i = 1; i <= 10; i++) 

Диапазон I будет составлять от 1 до 10

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