变更履历
V1.0
介绍
这一章主要学习了 OC 的循环和选择结构,这是一个两章合一的篇章。从循环和选择结构来说,OC 与 Java 语言的区别并不大。
关系运算符
OC 与 Java 的关系运算符没什么不同。
运算符 | 含义 | 例子 |
---|---|---|
== | 等于 | count == 10 |
!= | 不等于 | flag != DONE |
< | 小于 | a < b |
>= | 小于等于 | low <= high |
> | 大于 | points > POINT_MAX |
>= | 大于等于 | j >= 0 |
循环结构 for、while、do
for
for ( init_expression; loop_condition; loop_expression)
program statement;
示例如下:
#import <Foundation/Foundation.h>
int main(int argc, const char *argv[])
{
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
int n, number, triangularNumber, counter;
for ( counter = 1; counter <= 5; ++counter ) {
NSLog(@"What triangualr number do you want?");
scanf("%i", &number);
triangularNumber = 0;
for ( n = 1; n <= number; ++n )
triangularNumber += n;
NSLog(@"Triangualr number %i is %i", number, triangularNumber);
}
[pool drain];
return 0;
}
总的来说,OC 的 for 循环与 Java 没有什么区别。
while
while ( loop_condition ) {
program statement;
}
do
do {
program statement;
} while ( expression )
break
退出循环语句
continue
跳过当前循环,继续下次循环
选择结构 if、switch
if
if ( expression )
program statement
或
if ( expression )
program statement
else
program statement
switch
switch ( expression )
{
case value1:
program statement;
program statement;
...
break;
case value2:
program statement;
program statement;
...
break;
case valuen:
program statement;
program statement;
...
break;
default:
program statement;
program statement;
...
break;
}
Boolean 变量
// Program to generate a table of prime numbers
// second version using BOOL type and predefined values
#import <Foundation/Foundation.h>
int main (int argc, char *argv[])
{
NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
int p, d;
BOOL isPrime;
for ( p = 2; p <= 50; ++p ) {
isPrime = YES;
for ( d = 2; d < p; ++d )
if ( p % d == 0 )
isPrime = NO;
if ( isPrime == YES )
NSLog (@”%i ", p);
}
[pool drain];
return 0;
}
一个特殊的类型 Bool,它可以用于声明值非真即假的变量。另一种内置的值是 YES 和 NO。在程序中使用它们更易于读写。但需要注意的是,Bool 并不是真实的 Boolean 类型,它是使用预处理程序机制添加的。
条件运算符
condition ? expression1 : expression2
一个三目运算符,用法与 Java 一样。