Меню

Ошибка else не может запускать оператор

kraftov

0 / 0 / 0

Регистрация: 15.04.2021

Сообщений: 6

1

25.04.2021, 12:45. Показов 5701. Ответов 3

Метки else требует оператора, elseif (Все метки)


При добавлении else к if вылезают куча ошибок, первая из них «else не может запускать оператор»
Код:

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
using System;
 
namespace ConsoleApp1
{
    class Program
    {
        static void Main(string[] args)
        {
            int nach = 0;
            int konec = 0;
            int dopperm = 0;
            int x = 0;
            int sum = 0;
            int ethapif = 1;
            int ethapwh = 1;
            nach = int.Parse(Console.ReadLine());
            konec = int.Parse(Console.ReadLine());
            if (nach > konec)
            {
                dopperm = konec;
                konec = nach;
                nach = dopperm;
            }
            Console.WriteLine("[" + nach + ";" + konec + "]");
            x = nach;
            Console.WriteLine("Начальный x=" + x);
            while (x <= konec)
            {
                Console.WriteLine();
                Console.WriteLine("Этап(While)=" + ethapwh);
                ethapwh++;
                Console.WriteLine("while x=" + x);
                if ((x % 2 == 1)) ;
                {
 
                    Console.WriteLine("if x=" + x);
                    sum += x;
                    Console.WriteLine("Этап(if)=" + ethapif);
                    ethapif++;
                    Console.WriteLine("if sum=" + sum);
                    x++;
                }else 
 
            }
            
            Console.WriteLine("Итоговая сумма=" + sum);
            Console.ReadKey();
        }
    }
}

p.s. решаю задачу (Программа должна предложить пользователю границы диапазона указав два
целых числа. Необходимо суммировать все нечетные целые числа в диапазоне
указанном пользователем.
Указания:
В коде должен использоваться любой цикл (while, for или foreach)
Диапазон включительно, то есть числа введеные пользователем являются
частью диапазона.
Программа должна работать и в том случае, когда второе число меньше
первого)

__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь



0



Пора на C++?

369 / 263 / 99

Регистрация: 10.04.2020

Сообщений: 1,275

25.04.2021, 13:02

2

Цитата
Сообщение от kraftov
Посмотреть сообщение

При добавлении else к if вылезают куча ошибок, первая из них «else не может запускать оператор»

Добавьте код после else.



0



Эксперт .NET

5856 / 4733 / 2940

Регистрация: 20.04.2015

Сообщений: 8,361

25.04.2021, 13:05

3

Лучший ответ Сообщение было отмечено kraftov как решение

Решение

1) уберите ‘;’ в 33-й строке
2) после else нужна хотя бы одна строка, выполняющаяся, если условие в if не выполнится



1



0 / 0 / 0

Регистрация: 15.04.2021

Сообщений: 6

25.04.2021, 13:07

 [ТС]

4

не помогает

Добавлено через 1 минуту
Даценд спасибо!



0



Asked
3 years, 9 months ago

Viewed
17k times

I’m new to programming guys (C#) my code says that the if else statement that I used is causing an error. Idk what the problem is with this. Can someone help me please?

    if(ItemPrice==Soda);
    {
        Console.WriteLine($"Inserted so far: P0 out of P{Soda}");
        break;
    }
    else if(ItemPrice==Juice);
    {
        Console.WriteLine($"Inserted so far: P0 out of P{Juice}");
    }
    else if(ItemPrice==WaterBottle);
    {
        Console.WriteLine($"Inserted so far: P0 out of P{WaterBottle}");
    }

Risto M's user avatar

Risto M

2,87915 silver badges27 bronze badges

asked Apr 11, 2019 at 5:21

Betlogka's user avatar

1

You have semicolons (;) after your if statements, Which gives you these warnings

Compiler Warning (level 3) CS0642

Possible mistaken empty statement

A semicolon after a conditional statement may cause your code to
execute differently than intended.

And this error

Compiler Error CS1513

} expected

The compiler expected a closing curly brace (}) that was not found.

The syntax you needed

if (condition) 
{
   // statement;
}
else if (condition) 
{
   // statement;
}
else if (condition) 
{
   // statement;
}

Additional resources

if-else (C# Reference)

answered Apr 11, 2019 at 5:22

TheGeneral's user avatar

TheGeneralTheGeneral

77.5k9 gold badges89 silver badges129 bronze badges

0

Оператор else не работает, если ввод в консоль не «Камень, ножницы или бумага», сообщение об исключении не отображается. Что является причиной этого.

using System;

namespace Rock__Paper__Scissors_
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Lets play a game of Rock, Paper, Scissors.");
            Console.Write("Enter Rock, Paper or Scissors:");
            string userChoice = Console.ReadLine();

            Random r = new Random();
            int computerChoice = r.Next(3);

            //0 = Scissors
            if (computerChoice == 0)
            {
                if (userChoice == "Scissors")
                {
                    Console.WriteLine("Computer chose scissors!");
                    Console.WriteLine("TIE!");
                }

                else if (userChoice == "Rock")
                {
                    Console.WriteLine("Computer chose Scissors!");
                    Console.WriteLine("You WIN!");
                }

                else if (userChoice == "Paper")
                {
                    Console.WriteLine("Computer chose Scissors");
                    Console.WriteLine("You LOSE!");

                }
            }

            //1 = Rock
            else if (computerChoice == 1)
            {
                if (userChoice == "Scissors")
                {
                    Console.WriteLine("Computer chose Rock!");
                    Console.WriteLine("You LOSE!");
                }

                else if (userChoice == "Rock")
                {
                    Console.WriteLine("Computer chose Rock!");
                    Console.WriteLine("TIE!");
                }

                else if (userChoice == "Paper")
                {
                    Console.WriteLine("Computer chose Rock");
                    Console.WriteLine("You WIN!");
                }
            }

            //2 = Paper
            else if (computerChoice == 2)
            {
                if (userChoice == "Scissors")
                {
                    Console.WriteLine("Computer chose Paper!");
                    Console.WriteLine("You WIN");
                }

                else if (userChoice == "Rock")
                {
                    Console.WriteLine("Computer chose Paper!");
                    Console.WriteLine("You LOSE!");
                }

                else if (userChoice == "Paper")
                {
                    Console.WriteLine("Computer chose Paper");
                    Console.WriteLine("TIE!");
                }
            }

            //3 = Exception Handling
            else
            {
                Console.WriteLine("You must enter Rock, Paper or Scissors");
            }


        }
    }
}

2 ответа

Прежде чем продолжить, проверьте значение или userChoice … Я бы предпочел использовать цикл while

using System;

namespace Rock__Paper__Scissors_
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Lets play a game of Rock, Paper, Scissors.");
            Console.Write("Enter Rock, Paper or Scissors:");
            string userChoice = Console.ReadLine();

            //Check it here in a while loop, until the user gets it 
            //right, the program will not proceed and loop here
            while (userChoice != "Scissors" || userChoice != "Rock" || userChoice != "Paper")
            {
                Console.Write("You must enter Rock, Paper or Scissors");
                userChoice = Console.ReadLine();
            }

            Random r = new Random();
            int computerChoice = r.Next(3);

            //0 = Scissors
            if (computerChoice == 0)
            {
                if (userChoice == "Scissors")
                {
                    Console.WriteLine("Computer chose scissors!");
                    Console.WriteLine("TIE!");
                }

                else if (userChoice == "Rock")
                {
                    Console.WriteLine("Computer chose Scissors!");
                    Console.WriteLine("You WIN!");
                }

                else if (userChoice == "Paper")
                {
                    Console.WriteLine("Computer chose Scissors");
                    Console.WriteLine("You LOSE!");

                }
            }

            //1 = Rock
            else if (computerChoice == 1)
            {
                if (userChoice == "Scissors")
                {
                    Console.WriteLine("Computer chose Rock!");
                    Console.WriteLine("You LOSE!");
                }

                else if (userChoice == "Rock")
                {
                    Console.WriteLine("Computer chose Rock!");
                    Console.WriteLine("TIE!");
                }

                else if (userChoice == "Paper")
                {
                    Console.WriteLine("Computer chose Rock");
                    Console.WriteLine("You WIN!");
                }
            }

            //2 = Paper
            else if (computerChoice == 2)
            {
                if (userChoice == "Scissors")
                {
                    Console.WriteLine("Computer chose Paper!");
                    Console.WriteLine("You WIN");
                }

                else if (userChoice == "Rock")
                {
                    Console.WriteLine("Computer chose Paper!");
                    Console.WriteLine("You LOSE!");
                }

                else if (userChoice == "Paper")
                {
                    Console.WriteLine("Computer chose Paper");
                    Console.WriteLine("TIE!");
                }
            }
        }
    }
}


0

jPhizzle
4 Июл 2019 в 01:50

Добавлено еще несколько операторов if / if else вместо else. Теперь он выплевывает ошибку исключения, которую я хотел.

Цель создания этого заключалась в том, чтобы практиковать / применять методы if, if else и else, поскольку я пытаюсь изучить C # и прорабатываю некоторые учебные пособия в Интернете. Конечно, есть, наверное, лучшие способы сделать эту игру.

-Нужно добавить какие-то петли (когда я научусь их делать). — Компьютер, кажется, генерирует случайное число в предсказуемой последовательности и не кажется таким уж случайным, поэтому мне нужно работать над улучшением этого.

Используя Систему;

namespace Rock__Paper__Scissors_
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Lets play a game of Rock, Paper, Scissors.");
            Console.Write("Enter Rock, Paper or Scissors:");
            string userChoice = Console.ReadLine();

            Random r = new Random();
            int computerChoice = r.Next(2);


            //0 = Scissors
            if (computerChoice == 0)
            {
                if (userChoice == "Scissors")
                {
                    Console.WriteLine("Computer chose scissors!");
                    Console.WriteLine("TIE!");
                }

                else if (userChoice == "Rock")
                {
                    Console.WriteLine("Computer chose Scissors!");
                    Console.WriteLine("You WIN!");
                }

                else if (userChoice == "Paper")
                {
                    Console.WriteLine("Computer chose Scissors");
                    Console.WriteLine("You LOSE!");

                }
            }

            //1 = Rock
            else if (computerChoice == 1)
            {
                if (userChoice == "Scissors")
                {
                    Console.WriteLine("Computer chose Rock!");
                    Console.WriteLine("You LOSE!");
                }

                else if (userChoice == "Rock")
                {
                    Console.WriteLine("Computer chose Rock!");
                    Console.WriteLine("TIE!");
                }

                else if (userChoice == "Paper")
                {
                    Console.WriteLine("Computer chose Rock");
                    Console.WriteLine("You WIN!");
                }
            }

            //2 = Paper
            else if (computerChoice == 2)
            {
                if (userChoice == "Scissors")
                {
                    Console.WriteLine("Computer chose Paper!");
                    Console.WriteLine("You WIN");
                }

                else if (userChoice == "Rock")
                {
                    Console.WriteLine("Computer chose Paper!");
                    Console.WriteLine("You LOSE!");
                }

                else if (userChoice == "Paper")
                {
                    Console.WriteLine("Computer chose Paper");
                    Console.WriteLine("TIE!");
                }
            }


            //Exception Handling
            if (userChoice != "Scissors")
            {
                Console.WriteLine("Choose Rock, Paper or Scissors");
            }

            else if (userChoice != "Rock")
            {
                Console.WriteLine("Choose Rock, Paper or Scissors");
            }

            else if (userChoice != "Paper")
            {
                Console.WriteLine("Choose Rock, Paper or Scissors");
            }


        }
    }
}


0

Thomas Dunbar
4 Июл 2019 в 13:09

let swiperNav = document.querySelectorAll('.work__stages-nav')
let number = document.querySelectorAll('.number')
let swiperNextBtn = document.querySelector('.swiper-button-next')
let swiperPrevtBtn = document.querySelector('.swiper-button-prev')
let swiperTitle = document.querySelectorAll('.swiper__item-info__title')

swiperNextBtn.addEventListener('click', function (e) {
  let swiperTitle = document.querySelectorAll('.swiper__item-info__title')
  let number = document.querySelectorAll('.number')
  for (let i = 0; i < swiperTitle.length; i++) {
    if (swiperTitle[i].innerHTML == 'Выбор материала и цвета') {
      swiperNav[0].style.color = '#373E46'
      number[0].style.color = '#373E46'
      number[0].style.background = 'white'
      swiperNav[1].style.color = '#621F2A'
      number[1].style = `
      background: #621F2A;
      color: white;
      `
    } else if (swiperTitle[i].innerHTML == 'Дизайн проект и изготовление') {
      swiperNav[1].style.color = '#373E46'
      number[1].style.color = '#373E46'
      number[1].style.background = 'white'
      swiperNav[2].style.color = '#621F2A'
      number[2].style = `
      background: #621F2A;
      color: white;
      `
      
    }  else if (swiperTitle[i].innerHTML == 'Установка гриль кухни') {
      swiperNav[2].style.color = '#373E46'
      number[2].style.color = '#373E46'
      number[2].style.background = 'white'
      swiperNav[3].style.color = '#621F2A'
      number[3].style = `
      background: #621F2A;
      color: white;
      `
    }
  }
})


  • Вопрос задан

    27 янв.

  • 93 просмотра

Пригласить эксперта

Трудно определить точную проблему без дополнительной информации о коде и контексте, в котором он используется. Однако одна из потенциальных проблем может заключаться в том, что оператор else if не связан должным образом с начальным оператором if. Для того чтобы оператор else if работал как положено, он должен непосредственно предшествовать оператору if, без какого-либо дополнительного кода между ними. Другая потенциальная проблема может заключаться в том, что условия в операторах if и else if не выполняются, в результате чего код в этих блоках не выполняется.


  • Показать ещё
    Загружается…

30 янв. 2023, в 03:43

10000 руб./за проект

30 янв. 2023, в 02:44

2000 руб./за проект

30 янв. 2023, в 00:44

500 руб./за проект

Минуточку внимания

Обновлено:
Моя проблема была решена благодаря пользователю Крису Ларабеллу, спасибо всем, что откликнулись.

Проблема, возникающая с моим кодом, заключается в том, что, когда указанный файл отсутствует в каталоге Desktop, консоль закроется и не перейдет к оператору else, что происходит, когда файл отсутствует. Однако, когда файл присутствует, консоль будет работать полностью нормально, это просто инструкция else.
Вот мой код, который используется.

if (inputDrive == "search.system")
        {
            try
            {
                string Desktop = Environment.GetFolderPath(Environment.SpecialFolder.DesktopDirectory);
                string DeleteFile = @"delete.txt";
                string[] fileList = System.IO.Directory.GetFiles(Desktop, DeleteFile);
                foreach (string file in fileList)
                {
                    if (System.IO.File.Exists(file))
                    {
                        System.IO.File.Delete(file);
                        Console.WriteLine("File has been deleted");
                        Console.ReadLine();
                    }
                    else
                    {
                        Console.Write("File could not be found");
                        Console.ReadLine();
                    }
                }
            }
            catch (System.IO.FileNotFoundException)
            {
                Console.WriteLine("search has encountered an error");
                Console.ReadLine();
            }
        }

Я пытаюсь найти в каталоге Desktop файл с именем ‘delete.txt’ и удалить его, когда пользователь вводит search.system. тогда консоль ответит вам, что файл был удален. Если файл не был найден, он ответит вам через консоль, что «файл не может быть найден». Если произойдет ошибка, он перейдет к перехвату и скажет «поиск обнаружил ошибку».

Я также хочу сказать, что мне очень жаль, если этот код запутан и / или если это совершенно не соответствует тому, что я пытаюсь выполнить. Я новичок в C# и новичок в кодировании в целом.

Перейти к ответу
Данный вопрос помечен как решенный


Ответы
2

Вы могли бы поместить оператор if, чтобы проверить, что длина fileList равна > 0. Если длина файла равна нулю, файл не найден. В противном случае вы можете продолжить удаление файла.

Кроме того, не расстраивайтесь, как новый программист. Установите точку останова в строке, где вы используете метод GetFiles(), и шаг (F11) к следующей строке. Наведите курсор на переменную fileList и посмотрите, равно ли нулю количество элементов в массиве.

System.IO.Directory.GetFiles ()

Похоже, вы просто ищете определенный файл по имени и удаляете его, если он существует. Вы можете упростить свой код, выполнив следующие действия:

if (inputDrive == "search.system")
{
    try
    {
        string Desktop = Environment.GetFolderPath(Environment.SpecialFolder.DesktopDirectory);
        string DeleteFile = @"delete.txt";
        string filePath = System.IO.Path.Combine(Desktop, DeleteFile);

        if (System.IO.File.Exists(filePath))
        {
            System.IO.File.Delete(filePath);
            Console.WriteLine("File has been deleted");
            Console.ReadLine();
        }
        else
        {
            Console.Write("File could not be found");
            Console.ReadLine();
        }
    }
    catch (System.Exception ex)
    {
        Console.WriteLine($"search has encountered an error: {ex}");
        Console.ReadLine();
    }
}

Другие вопросы по теме

0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии

А вот еще интересные материалы:

  • Яшка сломя голову остановился исправьте ошибки
  • Ясность цели позволяет целеустремленно добиваться намеченного исправьте ошибки
  • Ясность цели позволяет целеустремленно добиваться намеченного где ошибка
  • Ошибка eloc на кондиционере
  • Ошибка eeprom general climate