请问这ti为什么选c啊?

设变量已正确定义,以下( c)与其它switch语句不等价。
A.
switch(choice){
case 1: price = 3.0; break;
case 2: price = 2.5; break;
case 3: price = 4.0; break;
case 4: price = 3.5; break;
default: price = 0.0; break;
}

B.
switch(choice){
default: price = 0.0; break;
case 4: price = 3.5; break;
case 3: price = 4.0; break;
case 2: price = 2.5; break;
case 1: price = 3.0; break;
}

C.
switch(choice){
case 1: price = 3.0; break;
case 2: price = 2.5; break;
case 3: price = 4.0; break;
case 4: price = 3.5; break;
}

D.
price = 0.0;
switch(choice){
case 1: price = 3.0; break;
case 2: price = 2.5; break;
case 3: price = 4.0; break;
case 4: price = 3.5; break;
}

c没有设置price的默认值为0.0,ab会在default语句中设置,d直接在swtich外面提前赋值来实现默认值

当choice为5时,ABD执行后price为0.0,C则不确定

switch(choice)有4个选项,只有 C 有漏洞,当choice不在4个选项中时,price是无法确定的值。