Objective c 开关语句常量问题
这只是我似乎无法解决的问题的一个小例子。我看过类似的帖子,答案通常包括通过#define或enum使用常量,但是当您有一个固定的常量时,这些都很好,但是如果该值作为参数传递,我怎么做呢?如果可能的话。任何建议都将不胜感激。简而言之,Objective c 开关语句常量问题,objective-c,c,constants,switch-statement,Objective C,C,Constants,Switch Statement,这只是我似乎无法解决的问题的一个小例子。我看过类似的帖子,答案通常包括通过#define或enum使用常量,但是当您有一个固定的常量时,这些都很好,但是如果该值作为参数传递,我怎么做呢?如果可能的话。任何建议都将不胜感激。简而言之,case语句只能对常量表达式进行操作,因此如果需要更多动态条件,则必须使用if语句。简而言之,case语句只能对常量表达式进行操作,因此如果需要更多动态条件,您必须使用if语句。switch语句用于根据常量表达式列表测试变量的值。具有各种case语句的switch与用
case
语句只能对常量表达式进行操作,因此如果需要更多动态条件,则必须使用if
语句。简而言之,case
语句只能对常量表达式进行操作,因此如果需要更多动态条件,您必须使用if
语句。switch语句用于根据常量表达式列表测试变量的值。具有各种case语句的switch与用于相同比较的一系列if/elseif语句之间的差异更多的是语法差异,而不是逻辑差异
但是,if/elseif语句更灵活,因为它们不需要常量表达式,并且您也可以在if/elseif中使用更复杂的逻辑表达式
例如:
- (void)change:(int)a {
int number = a;
int max = 10;
switch(max) {
case number:
//Do something
break;
//.... more cases
}
}
与本系列if/elseif语句具有相同的含义:
switch (iValue) {
case 1:
break;
case 4:
break;
default:
break;
}
大多数情况下,编译器在为switch语句生成代码时,会生成一系列if/elseif代码。因此,编译器为if/elseif语句系列生成的实际代码与为switch语句生成的代码类似。switch语句用于根据常量表达式列表测试变量的值。具有各种case语句的switch与用于相同比较的一系列if/elseif语句之间的差异更多的是语法差异,而不是逻辑差异 但是,if/elseif语句更灵活,因为它们不需要常量表达式,并且您也可以在if/elseif中使用更复杂的逻辑表达式 例如:
- (void)change:(int)a {
int number = a;
int max = 10;
switch(max) {
case number:
//Do something
break;
//.... more cases
}
}
与本系列if/elseif语句具有相同的含义:
switch (iValue) {
case 1:
break;
case 4:
break;
default:
break;
}
大多数情况下,编译器在为switch语句生成代码时,会生成一系列if/elseif代码。因此,编译器为if/elseif语句系列生成的实际代码与为switch语句生成的代码类似。为什么要为此使用switch?if-conditional更适合于该作业,您试图通过使用switch语句而不是if语句来实现什么?我不理解你的例子,我认为这是虚构的。你能提供一个更现实的例子来说明你想做什么吗?为什么你想用开关来做这个?if-conditional更适合于该作业,您试图通过使用switch语句而不是if语句来实现什么?我不理解你的例子,我认为这是虚构的。你能提供一个更现实的例子来说明你想做什么吗?