ObjC学习2-语法循环、条件,原来像学C语言一样啊!


回顾昨天学习内容及没解决的问题:

这两种写法暂时不知道又啥区别= = !

Fraction *mf = [[ Fraction alloc ] init ];

Fraction*f = [Fractionnew];

问了公司里的大牛得知: 两种其实都是类的初始化,而new出来的类必须继承于NSObject才可以调用new的方法。


好了,今天的学习记录开始。

1.像那年学C一样的循环!

for循环:

int s =0;//必须先生命初始化不然在循环里没值

for(int i =0;i<10;i++)

{

s+=i;

NSLog(@"%i %i",i,s);

}

这里S必须初始化,然后在循环里会找不到值。

嵌套循环 - NSLog不知道可不可以不用换行输出呢~

for(int i =1 ; i<=10;i++)

{

for(int k=1;k<=i;k++)

{

NSLog(@"%2i * %i = %2i",i,k,i*k);

}

}

while 循环:

bool isOk =YES;

int i = 0;

while(isOk)

{

i+=1326;

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

if(i >=13260)

{

isOk =NO;

}

}


do-while循环

isOk=YES;

do

{

i-=1326;

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

if(i==0)

{

isOk=NO;

}

}while (isOk!=NO) ;


太久没用dowhile 循环 ,while条件都不会写了。。

isOk!=NO 表示当is不为NO时程序继续执行 DW循环无论条件成立与否都至少执行一次。


break;终止循环 continue;跳过后面的代码

for(int i =1;i<=10;i++)

{

NSLog(@"%i",i);

if(i>5)

{

//continue;

break;

}

i++;

}




2.选择结果 if switch conditional

实现的类

//

// FractionIf.m

// Test

//

// Created by lenbol on 13-5-15.

// Copyright (c) 2013 lenbol. All rights reserved.

//


#import "FractionIf.h"


@implementation FractionIf


-(void) print

{

NSLog(@" %i/%i",num1,num2);


}


-(void) setN2:(int)n2

{

num2= n2;

}


-(void) setN:(int)n

{

num1 = n;

}


-(int) num1

{

return num1;

}


-(int ) num2

{

return num2;


}



-(double) convertToNum

{

if(num2!=0)

{

return (double)num1/num2;

}else{return0.0;}

}


@end




--主程序方法

FractionIf *fif = [[FractionIfalloc] init];

FractionIf *fif2= [[FractionIfalloc] init];

[fifsetN:1];

[fifsetN2:2];

[fifprint];

NSLog(@"=");

NSLog(@"%g",[fifconvertToNum]);

//不初始化

[fif2print];

NSLog(@"=");

NSLog(@"%g",[fif2convertToNum]);

[fifrelease];

[fif2release];


结果:

2013-05-15 23:42:40.664 Test[761:c07] 1/2

2013-05-15 23:42:40.666 Test[761:c07] =

2013-05-15 23:42:40.668 Test[761:c07] 0.5

2013-05-15 23:42:40.669 Test[761:c07] 0/0

2013-05-15 23:42:40.670 Test[761:c07] =

2013-05-15 23:42:40.671 Test[761:c07] 0



复合条件:

for(int i =0 ;i<100;)

{

NSLog(@"%i",i);

if(i>0&&i<50)

{

i++;

}

i++;

}

注:在50之前i每次循环+2


一道经典的题目:计算闰年!

//计算闰年

int year = 2005;

if((year%4==0 && year%100!=0) ||year%400==0)

{

NSLog(@"it's a leap year");

}else

{

NSLog(@"not~");

}


嵌套IF


在本类定义一个新方法

-(bool) testY

{

return YES;

}

主程序调用 : self 难道是调用自身方法? 好像发现一个相当于别的语言的this的东西,不知和this有啥区别 *

if([self testY] ==YES)

{

NSLog(@"1y");

if([self testY] !=YES)

{

NSLog(@"2y");

}

else

{

NSLog(@"2n");

}

}

else

{

NSLog(@"1n");

}


else if :

if([selftestY]!=YES)

{

NSLog(@"1y");

}

else if([selftestY]==YES||[selftestY]!=YES)

{

NSLog(@"else if y");

}

else

{

NSLog(@"2n");

}

*条件冲突时取前面


switch:


bool ok = ![selftestY];

switch (ok) {

case YES :

NSLog(@"1326");

break;

case NO:

NSLog(@"8023");

break;

default:

break;

}

int i = 3;

switch (i) {

case 1:

NSLog(@"1326");

break;

case 2:

NSLog(@"8023");

break;

default:

NSLog(@"none");

break;

}

用bool类型做switch条件时会有一个warning~


传说中的三元运算符 :

int n1 =1;

n1 = (n1>0)?10:20;

NSLog(@"%i",n1);

结果:10




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值