首页 > 代码库 > Objective-C之成魔之路【5-选择结构】
Objective-C之成魔之路【5-选择结构】
重开发者的劳动成果,请勿转载
Objective-C中的控制语句有以下几类:
? 分支语句: if-else, switch
? 循环语句: while, do-while, for
? 与程序转移有关的跳转语句: break, continue, goto
? 分支语句: if-else, switch
? 循环语句: while, do-while, for
? 与程序转移有关的跳转语句: break, continue, goto
对于任何程序语言来说,有能力进行判断是一项基本特性。
if-else语句
分支语句提供了一种控制机制, 使得程序的执行可以跳过某些语句不执行, 而转去执行特定的语句。
1. 条件语句 if-else
2. 多分支语句 switch
条件语句 if-else, 基本语法形式如下, 其中“[] ” 中的部分可以省略。
if (boolean-expression)
statement1;
[else if (boolean-expression) statement2;]
[else statement3;]
1. 条件语句 if-else
2. 多分支语句 switch
条件语句 if-else, 基本语法形式如下, 其中“[] ” 中的部分可以省略。
if (boolean-expression)
statement1;
[else if (boolean-expression) statement2;]
[else statement3;]
举例如下:
int number1 = 0;
int number2 = 1;
int max = 0;
if (number1 > number2) {
max = number1;
} else {
max = number2;
}
// 打印最大值max
NSLog(@"The maximum is %i ", max);
int number2 = 1;
int max = 0;
if (number1 > number2) {
max = number1;
} else {
max = number2;
}
// 打印最大值max
NSLog(@"The maximum is %i ", max);
对于if语句,下面的代码很有价值:
int numerator;
int denominator;
-(double) convertToNum
{
if (denominator != 0) { //这里防止分母为0很必要
return (double) numerator /denominator;//这里double强转很有必要,否则小数位的值就丢了。
} else {
return NAN;//这里NAN表示一个数字,这个符号被定义在系统头文件math.h中。
}
}判断整数能否整除2
remainder = number_to_test % 2;
if ( remainder == 0) {
//整除2
xxoo
}
最后对于if的条件表达式,要求用括号括起来,不要过度依赖于优先级。
尽量预测程序可能失败或产生非预期结果的情形,然后采取预防性措施应付这些情况,
是编写优秀而可靠的程序的必要部分。
其实,这个条件语句,写的好不好,主要看逻辑思维缜密不缜密。
Objective-C中有两个内置的特性,可以使Boolean变量的使用更容易。
一种特性就是特殊类型BOOL,它可以用于声明值非真即假的变量。
另外一种是预定义的值YES和NO。
非零意味着满足和零意味着不满足。
switch语句
多分支语句 switch它的语法形式如下, 其中“[]”中的部分可以省略。
switch (expression){
case value1 : statement1;
break;
…………
case valueN : statemendN;
break;
[default : defaultStatement; ]
}
switch (expression){
case value1 : statement1;
break;
…………
case valueN : statemendN;
break;
[default : defaultStatement; ]
}
举例如下:
int score = 0;
scanf("%i", &score);
int scoreVal = score / 10;
char resChar = ‘ ‘;
switch (scoreVal ) {
case 9:
resChar = ‘A‘;
break;
case 8:
resChar = ‘B‘;
break;
case 7:
resChar = ‘C‘;
break;
case 6:
resChar = ‘E‘;
break;
default :
resChar = ‘F‘;
}
NSLog(@"你的分数是: %c", resChar);
scanf("%i", &score);
int scoreVal = score / 10;
char resChar = ‘ ‘;
switch (scoreVal ) {
case 9:
resChar = ‘A‘;
break;
case 8:
resChar = ‘B‘;
break;
case 7:
resChar = ‘C‘;
break;
case 6:
resChar = ‘E‘;
break;
default :
resChar = ‘F‘;
}
NSLog(@"你的分数是: %c", resChar);
使用 switch语句一定要注意的是:
表达式expression的返回值类型必须是整数或能够自动转换成整数的类型都可以,
因此可以是_Bool、 char、 short int、 枚举类型、 int、 long int、 longlong以及它们的无符号类型等。
但不能是float和double等浮点类型。
case子句中的值valueN必须是常量, 而且所有case子句中的值应是不同的。
default子句是可选的。
break语句用来在执行完一个case分支后, 使程序跳出switch语句,
即终止switch语句的执行。
在一些特殊情况下, 多个不同的case值要执行一组相同的操作, 这时可以不用 break。
Objective-C之成魔之路【5-选择结构】
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。