Не все пути к коду возвращают значение c как исправить
Перейти к содержимому

Не все пути к коду возвращают значение c как исправить

  • автор:

c # возвращает ошибку «не все пути кода возвращают значение»

Я пытаюсь написать код, который возвращает, делится ли данное целое равномерно на 1-20,
но я продолжаю получать следующую ошибку:

error CS0161: ‘ProblemFive.isTwenty(int)’: не все пути кода возвращают значение

8 ответов

Вам не хватает инструкции return .

Когда компилятор просматривает ваш код, он видит третий путь ( else , который вы не кодировали), который может произойти, но не возвращает значение. Следовательно, not all code paths return a value .

Для моего предложенного исправления я положил return после окончания цикла. Другое очевидное пятно — добавление else , имеющее значение return для if-else-if -, разбило бы цикл for .

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

Вместо возврата в последнюю итерацию просто верните true после цикла:

Обратите внимание: в исходном коде есть логическая ошибка. Вы проверяете, если num == 20 в последнем условии, но вы должны были проверить, есть ли j == 20 . Также проверьте, была ли num % j == 0 суперплошной, так как это всегда верно, когда вы туда попали.

Я также испытал эту проблему и нашел легкое решение

Это также работает с другими типами возвращаемых данных и дает наименьшее количество проблем

Исходное значение, которое я выбрал, было значением спада, и я смог повторно назначить значение столько раз, сколько требуется.

Или просто сделайте это:

Мне нравится бить мертвых лошадей, но я просто хотел сделать дополнительную мысль:

Прежде всего, проблема заключается в том, что не все условия вашей структуры управления были устранены. По сути, вы говорите, если a, то это, иначе, если b, то это. Конец. Но что, если и нет? Невозможно выйти (т.е. Не каждый «путь» возвращает значение).

Мое дополнительное замечание состоит в том, что это пример того, почему вы должны стремиться к одному выходу, если это возможно. В этом примере вы сделали бы что-то вроде этого:

Итак, здесь всегда есть оператор return, и метод всегда выходит в одном месте. Несколько вещей, которые следует учитывать, хотя. вам нужно убедиться, что ваше значение выхода действительно на каждом пути или, по крайней мере, приемлемо. Например, эта структура принятия решений учитывает только три возможности, но единственный выход также может выступать в качестве вашего последнего заявления. Или это? Вы должны убедиться, что окончательное возвращаемое значение действительно для всех путей. Это гораздо лучший способ приблизиться к ней, имея 50 миллионов точек выхода.

Ошибка компиляции "не все по пути к коду возвращают значение"

Ошибка: CS0161 . Не все пути к коду возвращают значение
public double a; public double b; public double c; public double A() .

Ошибка в функции — Не все пути к коду возвращают значение
1)Метод инициализации полей Init — метод должен контролировать корректность аргументов; 2)ввод с.

Не все пути к коду возвращают значение
Пытаюсь сделать вычисление среднего арифметического с помощью вспомогательного метода, хотел как.

Не все пути к коду возвращают значение
Есть пример в котором имеется факториал,хочу сделать метод для его вычисления,чтоб каждый раз не.

Как решить проблему CS0161 в C#?

Я новичок в C# и недавно начал изучать функции. Мне надо сделать программу которая запрашивает числа, знак и выполняет действие (калькулятор короче). Но я столкнулся с проблемой, вот как она звучит:
Серьезность Код Описание Проект Файл Строка Состояние подавления
Ошибка CS0161 ‘»Program.Nikita(int, int, char)»: не все пути к коду возвращают значение.
вот код программы:

  • Вопрос задан более трёх лет назад
  • 1964 просмотра

Простой 1 комментарий

  • Facebook
  • Вконтакте
  • Twitter

firedragon

Никита кстати да универсальный совет. Пользуйтесь английскими версиями и просто ищите ошибку которую получили.
Как правило 1-2 ссылка это ваше решение.

Тот же хром кстати предлагает автоматический перевод, на удивление не плохой. Можно по диагонали посмотреть и потом переключиться на английский понять все тонкости.

Ошибка "не все пути к коду возвращают значение"

Задание — написать метод, принимающий int значение number и возвращающий сумму чисел от 1 до number. Подскажите, пожалуйста в чем причина ошибки "CS0161 — "Program.Sum(int)": Не все пути к коду возвращают значение" и как этой ошибки избежать.

Не все пути к коду возвращают значение — значит, что есть такие параметры, при которых функция, которая должна вернуть значение, выполнит команду return — то есть не вернет значение. Это может произойти по разным случаям: вы не написали команду return, вы написали ее в условии, которое не всегда истинно, ИЛИ вы написали ее в цикле, который может не дойти до этой строки.

Проще говоря, представьте, что произойдет, если на вход в функцию попадет неположительное число.

Если вы хотите посчитать сумму чисел от 1 до N, то возвращение результата должно будет после цикла, когда результат переменной result сформировался окончательно:

Максим Фисман's user avatar

Значение нужно возвращать вне цикла

Дизайн сайта / логотип © 2023 Stack Exchange Inc; пользовательские материалы лицензированы в соответствии с CC BY-SA . rev 2023.9.6.43612

Нажимая «Принять все файлы cookie» вы соглашаетесь, что Stack Exchange может хранить файлы cookie на вашем устройстве и раскрывать информацию в соответствии с нашей Политикой в отношении файлов cookie.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *