обнаружен недостижимый код c
Обнаружен недостижимый код в программе
Сегодня услышал интересную задачу от друга, решил попробовать его реализовать.
Суть задачи в следующем:
В небольшом отеле 10 комнат. Каждого из пришедших заселяют в случайно выбранную комнату.
Если в случайно выбранной комнате уже есть постоялец, всех постояльцев выгоняют из отеля.
Вопрос:
Сколько итераций понадобится чтобы все 10 комнат были заполнены лишь одним постояльцем в каждой комнате?
Решение делал следующим образом:
Сделать рандомный генератор;
Зачислять +1 в выбранную рандомную комнату;
Делать проверку после каждого зачисления;
Если после проверки в комнате более 1 человека, то:
— итерацию прекратить;
— итерация +1;
— вывести, в какой комнате более одного человека;
— начать заново;
В обратном случае закончить программу, и вывести номер итерации.
Исходный код консольной программы выглядит так:
Проблема вылезла в проверке номеров на наличие постояльцев (т.е. чисел больше единицы в массиве). В коде это 14 строка. Ошибка под названием «Обнаружен недостижимый код». Когда я просматривал программу с помощью точки остановы, то заметил, что программа попросту пропускала цикл. В результате программа зацикливается и сбрасывает все данные массива лишь при A[0]>1.
Как можно исправить программу, чтобы она целиком просматривала цикл, а не проходила сквозь него?
Помощь в написании контрольных, курсовых и дипломных работ здесь.
Warning CS0162: Обнаружен недостижимый код
Помогите пожалуйста. Не могу поянть почему так вроде обычный цикл:
Помощь в написании контрольных, курсовых и дипломных работ здесь.
Обнаружен недостижимый код в программе
Сегодня услышал интересную задачу от друга, решил попробовать его реализовать. Суть задачи в.
Обнаружен недостижимый код Interop.Excel
Здравствуйте, Функция ниже определяет, что находится в ячейке А1: цифра или буква. Процесс в.
тут прога вообще зависнет..
после дефаулта тоже должен быть break
Добавлено через 1 минуту
Неужели кто-то еще использует этот оператор.
От таких пережитков лучше избавляться. Дабы самому потом в своем же коде не заблудиться.
Помощь в написании контрольных, курсовых и дипломных работ здесь.
Недостижимый код
Собственно имеется задание Создайте класс Hero персонажа компьютерной игры. Класс должен содержать.
Обнаружен недостижимый код
Обнаружен недостижимый код, в чем проблема? using System; using System.Collections.Generic;.
Недостижимый код
Прога была полностью рабочей, лежала до лучших дней))) Переустановила ОС и появились ошибки типа.
Недостижимый код
Здравствуйте! Пишу программу, организовываю поиск по одному столбцу в dataGridView. dataGridView.
Недостижимый код. Почему если он не вызывается нет ошибки компиляции?
Заметил странное поведение. Это еклипсовский компилятор что-то оптимизирует или реально так и.
Недоступный код обычно считается нежелательным по нескольким причинам:
Содержание
Причины
Недостижимый код может существовать по многим причинам, например:
Примером такого условно недоступного кода может быть реализация общей функции форматирования строк в библиотеке времени выполнения компилятора, которая содержит сложный код для обработки всех возможных аргументов, из которых фактически используется только небольшое подмножество. Компиляторы обычно не могут удалить неиспользуемые участки кода во время компиляции, так как поведение в значительной степени определяется значениями аргументов во время выполнения.
Примеры
В этом фрагменте кода C:
определение int Z = X * Y; никогда не достигается, так как функция всегда возвращается перед ним. Следовательно, Z не нужно ни выделять память, ни инициализировать.
ошибка goto fail
Анализ
Код может стать недоступным в результате преобразований, выполняемых оптимизирующим компилятором (например, исключения общих подвыражений ).
На практике сложность анализа оказывает значительное влияние на количество обнаруживаемого недоступного кода. Например, сворачивание констант и простой анализ потока показывают, что внутренняя часть оператора if в следующем коде недоступна:
Однако требуется гораздо больше усилий, чтобы понять, что соответствующий блок недоступен в следующем коде:
Недоступен метод ликвидации кода находится в том же классе оптимизаций как устранение мертвого кода и избыточный код ликвидация.
Недоступность vs. профилирование
В некоторых случаях практический подход может заключаться в сочетании простых критериев недоступности и использования профилировщика для обработки более сложных случаев. Профилирование в целом не может ничего доказать о недоступности фрагмента кода, но может быть хорошей эвристикой для поиска потенциально недоступного кода. После обнаружения подозрительного фрагмента кода можно использовать другие методы, такие как более мощный инструмент анализа кода или даже анализ вручную, чтобы определить, действительно ли код недоступен.
C# обнаружен недостижимый код
Я получаю сообщение «Unreachable code detected» в Visual Studio в точке I++ в моем коде ниже. Можете ли вы определить, что я сделал не так?
5 ответов
Привет, у меня возникла проблема с некоторым кодом в моем контроллере. Я хочу иметь возможность сохранить сгенерированный документ Word на сервере с этим кодом, но он выдает мне ошибку обнаружен недостижимый код. Любая помощь будет оценена по достоинству. [AcceptVerbs(HttpVerbs.Post)].
Проблема в том, что на самом деле это не петля. У вас нет никаких условий на перерыв, поэтому вы могли бы эквивалентно написать что-то вроде
В качестве альтернативы вы должны исправить что-то вроде
Вы выходите из цикла до конца первой итерации.
Проблема в том, что из-за того, что вы break; в цикле без каких-либо шансов на то, что он сделает что-то еще, приращение i ( i++ ) никогда не будет достигнуто.
Хотя ваша проблема решена, я должен вам это сказать, вы можете просто использовать метод CreateSubKey() для своей цели. Я думаю, что это лучший выбор. 🙂
Вы также можете получить недостижимый код, если используете, например, Entity Framework, и вы не добавили эту ссылку в этот проект.
Допустим, у вас есть несколько проектов, таких как проект уровня данных, классы домена, затем вы создаете консольное приложение для тестирования или что-то еще, и вы указываете, где находится ваш dbcontext, но если вы не используете say nuget и добавляете EF, вы получите код, недоступный при попытке написать цикл и т. Д.
Похожие вопросы:
Я пытаюсь выяснить, является ли число простым или нет. Но у меня есть ошибка обнаружен недостижимый код, которая, как я думаю, влияет на ошибку not all code paths return a value. Ошибка.
Я пытаюсь написать программу в C#, чтобы узнать, является ли число простым числом. Я использую первые два оператора if, чтобы выделить многие параметры, а затем пытаюсь вложить цикл в последний.
Как обнаружить недостижимый код в C++/COM
Я хотел бы обнаружить следующую проблему с недостижимым кодом в C++/COM с помощью некоторых бесплатных инструментов или Visual Studio 2015.
Отредактированный:
Когда код более сложный, компилятор не предупреждает меня (обратите внимание, что когда вы пишете подобный код в c#, вы получаете правильное предупреждение):
Когда мы создаем еще более сложный пример, мы не получаем предупреждения на обоих языках-C++ и C# (мой оригинальный пример еще более сложный, потому что использует макрос COM):
Может быть, я ошибся, потому что спросил об инструментах (я думал о некоторых аддонах для Visual Studio, потому что думаю, что такого рода функциональность не встроена в этот IDE), но я считаю, что существует какой-то разумный подход к поиску этой ошибки. Мое реальное приложение имеет около 3 миллионов строк кода, и моя цель-найти и рефакторировать эти места. Любые идеи будут оценены по достоинству.
1 ответ
Можно ли обнаружить недостижимый код или другие встроенные предупреждения компиляции с помощью Roslyn? private void DoSomething() < string a = TEST; throw new Exception(Why would I throw an exception here?); a = This will never be reached; //this is a compile time warning for unreachable.
Возможно, вы захотите включить предупреждение компилятора C4702: недостижимый код (уровень W4) либо:
P.S. Эта информация очень легко доступна с помощью любой поисковой системы в Интернете. В следующий раз, когда у вас возникнут проблемы, вы можете попробовать поиск, прежде чем отправлять вопрос.
Похожие вопросы:
недостижимый код-это ошибка времени компиляции в таких языках, как Java. Но почему это просто предупреждение в C++ & C? Рассмотрим следующий пример: #include int f() < int a=3;.
Я использую eclipse IDE для java разработчиков EDIT: я должен иметь в виду только eclispe IDE, так как другие компиляторы для разных языков дают только вариации и могут обрабатывать код Я понимаю.
Почему этот метод возвращает ошибку: Ошибка: недостижимый код спасибо! public static boolean zeroCheck(double numberTwo, String operator) < if (numberTwo == 0) < return false; if(operator ==.
Можно ли обнаружить недостижимый код или другие встроенные предупреждения компиляции с помощью Roslyn? private void DoSomething() < string a = TEST; throw new Exception(Why would I throw an.