2016-04-28 3 views
-1

я имею проблему с, если-то еще заявление (примечание: я довольно неопытна с программированием)C#, если другое заявление

using System; 

namespace ConsoleApplication1 
{ 
    class Program 
    { 
     static void Main(string[] args) 
     { 
      int number; 

      Console.WriteLine("Please enter a number between 0 and 10:"); 
      number = int.Parse(Console.ReadLine()); 

      if(number > 10) 
       Console.WriteLine("Hey! The number should be 10 or less!"); 
      else 
       if(number < 0) 
        Console.WriteLine("Hey! The number should be 0 or more!"); 
       else 
        Console.WriteLine("Good job!"); 

      Console.ReadLine(); 
     } 
    } 
} 

Я использую моно для компиляции. я получил эти ошибки:

testif.txt (10,11): предупреждение CS0642: Возможное ошибочное пустое заявление

testif.txt (13,9): ошибка CS1525: Неожиданный символ `еще»

+0

проблема в файле testif.txt не в коде, который вы публикуете здесь, а также в фигурных скобках, если у вас многострочный if-else. – Jamaxack

+0

Вы должны использовать фигурные скобки, если у вас есть многострочные if и else's: use { } для первого else –

+5

Нет ничего плохого в этом коде. – shadow

ответ

1

Look here

Вам нужно одна линия else if

if(number > 10) 
    Console.WriteLine("Hey! The number should be 10 or less!"); 
else if(number < 0) 
    Console.WriteLine("Hey! The number should be 0 or more!"); 
else 
    Console.WriteLine("Good job!"); 

Или используйте {}

if(number > 10) 
    Console.WriteLine("Hey! The number should be 10 or less!"); 
else 
{ 
    if(number < 0) 
     Console.WriteLine("Hey! The number should be 0 or more!"); 
    else 
     Console.WriteLine("Good job!"); 
} 
+0

Upvote для первого решения. – shadow

+2

Это не отвечает на вопрос, так как код в вопросе работает отлично. – Enigmativity

+1

Ваше первое «решение» повторяет тот же код, который уже имеет ассер, только с разницей в пробеле. Как видно из компилятора C#, это одна и та же программа. Знаете ли вы, что компилятор Mono выдает предупреждения, которые, по мнению апеллянта, он делает, и знаете ли вы, что компилятор Mono опускает эти предупреждения, если вы изменяете только пробелы (как указано выше)? У меня нет Моно прямо здесь. –

0
Console.WriteLine("Please enter a number between 0 and 10:"); 
    number = int.Parse(Console.ReadLine()); 

    if (number =< 10 && number => 0) 
     Console.WriteLine("Good job!"); 
    else 
     Console.WriteLine("The number needs to be between 0 and 10"); 

    Console.ReadLine(); 

этот код работает и. & & знак проверяет, что стоит перед ним и после. если это правда, то это происходит там. , то инструкция else принимает все случаи вне 0-10.

Почему ваш код не работает, так что u проверяет менее 10 работ ведьмы, но тогда вы делаете инструкцию else с помощью скобок {}, вам нужно окружить ваш код, если вы хотите, чтобы он выполнялся в инструкции else. И вот почему вы получаете свою ошибку.

без скобок работает, если после инструкции имеется только одна строка кода. как в моем коде.

+0

Это изменяет функциональность по сравнению с исходным кодом. Это не объясняет, почему исходный код не должен быть в порядке. –

+0

Это было мое первое решение, так что я любопытный новый. Спасибо за совет –