Objective-C 学习笔记 5 循环结构

来源:互联网 发布:阿里云域名注册 编辑:程序博客网 时间:2024/05/21 15:07

for 语句

while 语句

do 语句


5.1 for 语句


int main ( int argc, char *iargv[])

{

 @autoreleasepool{

     int n,triangulaNumber;

     trianguarNumber = 0;

     for ( n = 1; n < 200; n+=1 )

         triangularNumber += n;

     NSLog (@ "The 200th triangular number is %i ", triangularNumber );

}

return  0

}

在执行for 语句之前 变量triangularNumber 被设置为0,一般来说,在程序使用变量之前,需要将所有变量初始化为某个值。

for 语句的执行步骤:

(1)先求表达式的值。这个表达式通常设置一个将在循环中使用的变量,对于某些初始值来说(0或者1),通常称为索引变量。

(2)求循环条件的值,如果条件不满足循环就立刻停止,然后执行之后的语句。

(3)执行循环体程序语句。

(4)求循环表达式的值,这个表达式通常用于改变索引变量的值,最常见的情况是,将索引变量的值加1或者减1。

(5)返回到步骤2。

不能在循环末尾处放置分号 ,这将导致循环立刻终止。


如果要执行一组语句,将这些程序语句放入一对花括号中就可以了。

for ( n = 1 ; n <= 10; ++n )

{

triangularNumber += n;

NSLog (@ " %i  %i", n , troangularNumber);

}


++n  是一个合法的Objective-C 表达式。 自增运算符。双加号叫作自增运算符。


NSLog(@"%2i  %i ", n , triangularNumber );

%2i 字符宽度说明。调整向右对齐。


5.1.1 键盘输入

int main (int argc, char * argv [ ] )

{

@autoreasepool {

int n , number, triangularNumber;


NSLog (@“What triangular number do you want?");

scanf ("%i",&number);


triangularNumber = 0;


for (n = 1; n <= number; n++ )

triangulaNumber += n;

NSLog(@"Triangular number %i is %i \ n ",number ,triangularNumber);

}

retrun  0

}



5.1.2 嵌套的for循环

如果我们要计算5个三角函数,该怎么办呢。

int main (int argc, char * argv [ ] )

{

@autoreasepool {

int n , number, triangularNumber,counter;

for ( counter = 1; counter <= 5; ++counter) {

  NSLog (@“What triangular number do you want?");

  scanf ("%i",&number);


  triangularNumber = 0;


  for (n = 1; n <= number; n++ )

  triangulaNumber += n;

  NSLog(@"Triangular number %i is %i \ n ",number ,triangularNumber);

}

}

retrun  0

}


5.1.3 for 循环的变体

编写for循环时,你可能发现在开始循环之前需要初始化多个变量。或者可能每次循环都要计算多个表达式。for 循环的任何位置都可包含多个表达式。只要用逗号分开这些表达式就可以了。

例如 : for (i= 0, j = 100; i < 10; ++i, j -= 10)


在for 循环中还可定义一个变量作为初始化表达式的一部分,使用以前定义变量的传统方式可实现

例如 : for ( int counter = 1; counter <= 5; ++counter )

变量counter 在for 循环语句执行中是已知的 是局部变量 不能外部访问。


5.2 while 语句

int main (int argc, char *argv[ ] )

{

@autoreleasepool {

int count = 1 ;


while (count <= 5 ) {

NSLog (@"%i", count );

++count;

}

}

retrun  0;

}


获取两个非负整数的最大公约数。

int main (int argc, char *argv[ ] )

{

@autoreleasepool {

unsigned int u, v, temp;

NSLog (@"Please type in two nonnegative integers.");
scanf ("%u%u", &u, &v);

while ( v != 0) {
temp = u % v;
u = v ;
v = temp;
}
NSLog (@"Their greatest common divisor is %u",u );
}

return  0;
}


把 数字1234的数字位置颠倒过来,并显示结果4321.

int main (int argc, char *argv[ ] )

{

@autoreleasepool {

int number ,right_digit;


NSLog(@" Enter you number");

scanf ("%i",&number);


while (number != 0) {

right_digit = number % 10;

NSLog(@"%i",right_digit);

number /= 10;

}

}

return 0

}


5.3 do 语句

do 语句的执行过程是先执行程序语句,其次求圆括号里面的值,如果求值结果为true,循环继续,反之执行下一条语句。do 语句只是while 语句的简单转置,把循环条件放在循环结尾。

int main (int argc, char *argv[ ] )

{

@autoreleasepool {

int number ,right_digit;


NSLog(@" Enter you number");

scanf ("%i",&number);


do {

right_digit = number % 10;

NSLog(@"%i",right_digit);

number /= 10;

}

while (number != 0);

}

return 0

}


5.4 break , continue 语句

只要执行break 语句 程序将立即退出正在执行的循环。

形式如下 

break;

continue 语句和break 语句类似,但他不会使循环结束。而是使循环跳过该语句之后直接到循环结尾处之间的所有语句。

0 0
原创粉丝点击