Я делаю штучку частотного анализа, и хочу, чтобы она автоматически переключала буквы. Я знаю, на что переключиться, но можете ли вы использовать свой код вроде:
if(a > b && a > c && a > c) { //code }
Мне сказали, что он не будет оценивать остальную часть кода, если a> b. Это правда?
3 ответа
Когда .Net вычисляет &&
, он использует короткое замыкание : он проверяет первое выражение (a > b)
и если он false ничего не делает, в случае true проверяет второй (a > c)
и т. д., поэтому в вашем случае
if(a > b && a > c && a > d) { //code }
Равно
if (a > b)
if (a > c)
if (a > d) { //code }
if(a > b && a > c && a > c)
Если a > b
ложно, тогда он не будет проверять a > c
. Поскольку оба должны быть верными для выполнения кода. Однако, если a > b
истинно, то он также проверит a > c
.
Кроме того, нет смысла использовать a > c
два раза.
Если хотя бы одно из сравнений должно быть истинным, вы можете использовать оператор ||
.
На самом деле это называется оценкой короткого замыкания, когда разные операторы имеют между собой оператор И, среда выполнения C # оценивает все выражение как ложное, если одно из операторов ложно, а затем игнорирует оценку остальных операторов.
Если вы хотите, чтобы вычислялись все выражения независимо от результата каждого из них, используйте single &, а не два &&. он будет сравнивать их по частям и заставит оценить все утверждения, чтобы определить окончательный результат.
if(a > b && a > c && a > c)
Вместо
if(a > b & a > c & a > c)//it will evaluate all the conditions before the final result
Для получения дополнительной информации проверьте это: ССЫЛКА
Похожие вопросы
Связанные вопросы
Новые вопросы
c#
C# (произносится как «see Sharp») — это высокоуровневый мультипарадигменный язык программирования со статической типизацией, разработанный Microsoft. Код C# обычно нацелен на семейство инструментов и сред выполнения Microsoft .NET, которое включает в себя .NET, .NET Framework, .NET MAUI и Xamarin среди прочих. Используйте этот тег для ответов на вопросы о коде, написанном на C#, или о формальной спецификации C#.
a < b
, а не другой. Это называется короткое замыкание.