为什么 Visual Studio 会发出警告“关系表达式作为开关表达式”?

问题描述 投票:0回答:1

我有以下代码:

float x = 0.43;
float y = 1.56;
size_t largerValueIndex = 1;
size_t smallerValueIndex = 0;
switch (x > y) {
case 1:
    largerValueIndex = 0;
    smallerValueIndex = 1;
    break;
}

Visual Studio 发出警告“C4144:'>':关系表达式作为 switch 语句”。

我想知道的是为什么有必要发出警告?我的印象是大多数 switch 和 if 语句都是两个值之间的比较。这被认为是不好的做法吗?如果是这样,为什么?

c++ visual-c++ compiler-warnings
1个回答
1
投票

虽然代码是正确的,但

switch
通常用于具有两种以上可能结果的场景;只有两种可能结果的测试应该是
if

编译器会对此发出警告,因为意外使用

switch
可能表示拼写错误或逻辑错误。

© www.soinside.com 2019 - 2024. All rights reserved.