选择结构,或者称为分支结构,是编程语言中程序结构的一种,它表示进行一种判断,比如进行循环的时候判断何时终止循环。
    选择结构语句包括if和switch,这和其它编程语言都是一样的,表示程序中可以有的选择分支。
    首先来看下if语句。if语句包括单if语句,if-else语句和if-else if语句。单if语句只是对一个条件进行判断,符合改条件时执行某语句;if-else语句也是对某一条件进行判断,但是加入了不符合该条件的else语句部分;而if-else if语句则是对多个条件进行逐一判断的语句。if语句表示的选择结构符合自然语言,也就是“如果...就...(否则...)”或者是“如果1...就...如果2...就....如果3...就...(否则...)”,看了下面的示例就会更加明白if语句的使用:

iOS可以判断字符是中文还是英文吗_if语句




1. #import <Foundation/Foundation.h>
2.   
3. int main(int argc, const char
4. {  
5.     @autoreleasepool{  
6. int
7.   
8. "Please input a number:");  
9. "%i",&number);  
10.   
11. if(number<0){  
12.             number=-number;  
13.         }  
14.   
15. "The absolute value is %i",number);  
16.     }  
17. return
18. }



    编译运行这个程序,我们得到如下输出:





    这个程序就是求一个数字的绝对值,当我们输入的数字小于0的时候,那么取反得到相反数,而对于正数则不用取反。就是上面的效果。


    下面针对我们之前做过的分数类加一个将分数转为小数的函数,这里需要做出判断,就是针对分母是否为0进行判定,打开XCode,我们修改程序如下:





    也就是加了一个函数-(double) convertToNum;之后编写它的实现:


iOS可以判断字符是中文还是英文吗_if语句


1. -(double) convertToNum  
2. {  
3. if(denominator!=0){  
4. return (double)numerator/denominator;  
5. else{  
6. return
7.     }  
8. }



    下面是测试用的主函数:


iOS可以判断字符是中文还是英文吗_if语句


1. int main(int argc, const char
2. {  
3.     @autoreleasepool {  
4. new];  
5. new];  
6.           
7.         [fractionA setNumerator:1];  
8.         [fractionA setDenominator:3];  
9.           
10. "The value of fractionA is %g",[fractionA convertToNum]);  
11.           
12. "fractionB is %i / %i",fractionB.numerator,fractionB.denominator);  
13. "The value of fractionB is %g",[fractionB convertToNum]);  
14.     }  
15. return
16. }



    编译运行,我们得到如下输出:





    为什么我们没有对fractionB进行设置,但其中分子很分母都是0,这是由于我们初始化后,int型的值都会默认为0,那么不设置就是0了。而要对fractionB变为小数是不可以的,因为分母为0,则返回NAN,就是程序的输出结果。而对于fractionA则没有任何问题,正确输出了结果。


    下面来看一下if-else结构的语句,先看如下的示例程序:


iOS可以判断字符是中文还是英文吗_if语句

1. #import <Foundation/Foundation.h>
2.   
3. int main(int argc, const char
4. {  
5.     @autoreleasepool{  
6. int
7.   
8. "Please input a number you want to test:");  
9. "%i",&number);  
10.   
11.         temp=number%2;  
12.   
13. if(temp==0){  
14. "Number %i is even number",number);  
15. else{  
16. "Number %i is odd number",number);  
17.         }  
18.     }  
19. return
20. }



    编译运行后,我们得到如下结果:





    这是一个奇偶数判断的程序,输入一个数字对2求模,如果余数为0说明是偶数,否则是奇数。这中间就可以应用if-else来作为选择结构的语句。


    下面来看if-else if的示例,也就是多个判断条件的用法:


iOS可以判断字符是中文还是英文吗_if语句


1. #import <Foundation/Foundation.h>
2.   
3. int main(int argc, const char
4. {  
5.     @autoreleasepool{  
6. int
7. char
8.   
9. "Please input your score(Full mark is 100):");  
10. "%i",&score);  
11.   
12. if(score>100){  
13. "Invalid score!");return
14. else if(90<=score && score<=100){level='A';}  
15. else if(80<=score && score<90){level='B';}  
16. else if(70<=score && score<80){level='C';}  
17. else if(60<=score && score<70){level='D';}  
18. else if(0<=score && score<60){level='F';}  
19. else{  
20. "Invalid score!");return
21.          }  
22.   
23. "Your level is %c",level);  
24.     }  
25. return
26. }


    编译运行后,我们得到如下结果:





    那么对于我们每次的输出,程序都做出了选择和判断。同时这里我们使用了与条件的综合判断,那么再看下面这个示例,我们使用更加复杂的条件进行判断:


iOS可以判断字符是中文还是英文吗_if语句


1. #import <Foundation/Foundation.h>
2.   
3. int main(int argc, const char
4. {  
5.     @autoreleasepool{  
6. int
7.   
8. "Please input a year to test:");  
9. "%i",&year);  
10.   
11. if((year%4==0 && year%100!=0) || year%400==0){  
12. "Year %i is a leap year!",year);  
13. else{  
14. "Year %i is not a leap year!",year);  
15.         }  
16.     }  
17. return
18. }



    编译运行后,我们得到如下结果:





    这是一个求闰年的程序,那么在if判断中我们使用了与条件和或条件组成的复合条件判断。