第四章Object-C判断语句

**if判断
这个Object-C程序语言提供一个功能判断,语言的结构是if。这个通用的状态格式表示为以下形式:
if(expression)
program statement
想象一下这个情况“如果不下雨,那么我将要去有用”在OC语言下。用这个if状态,写下的状态是:
if(it is no raining)
i will go swimming
这个if状态有用来规定程序的执行状态,状态基于指定的状况。如果不下雨我将要去有用。等同于下面的状态:
if(count>MAXIMUM_SONGS)
[playlist maxExceeded];
仅当这个count值大于MAXIMUM——SONGSS时,这个maxExceeded信息发送一个playlist。否则它将要无视它。
请看下面的程序:
#import <Foundation/Foundation.h>
int main(int argc,char* argv[])
{
    @autoreleasepool{
    int number;
    NSLog(@"Type in your number");
    scanf("%i",&number);
    if(number<0)
    number = -number;
    NSLog(@"the absolute value is %i",number);    
    }
    return 0;
}
Type in your number:
-100;
Ther absolute value is 100
在一个信息展示给用户之后,整形值将要存储一个数字,程序会测试这个值比对它是否小于0.如果是,如果这个数字不小于-那么程序将要自动跳过。
声明一个方法的形式如下:
-(double)convertToNum;
你将要写下他的定义
-(double)convertToNum
{
    return numberator/denominator;
}
这并不是好的。这个方法实际有两个严肃的问题。首先你将要计算并且转变。调用这个numerator和denominator这两个整型变量。当两个整型变量相除的时候会发生什么呢?事实它是两个整型相除。如果你想要转化这个1/2。上述代码将要返回你一个0!可以用类型转换符来转变为浮点类型取代。
(double)numerator/denominator
改变后的convertToNum方式:
-(double)convertToNum
{
    if(denominator != 0)
    return (double)numerator/denominator;
    else
    return NAN;
}
我们返回特别的数值NAN如果这个代码denominator为0.这个符号将要定义在系统头文件math.h,
#import <Foundation/Foundation.h>
@interface Fraction:NSObject
-(void)print;
-(void)setNumerator:(int)n
-(void)setDenominator:(int)d;
-(int)numerator;
-(int)denominator;
-(double)convertToNum;
@end

@implementation Fraction
{
    int numerator;
    int denomiantor;
}

-(void)print
{
    NSLog(@"%i%i",numerator,denominator);
}
-(void)setNumerator:(int)n
{
    numerator = n;
}
-(void)setDenominator:(int)d
{
    denomiantor = d;
}
-(int)numerator
{
    return numerator;
}
-(int)denominator
{
    return denomiantor;
}
-(double)convertToNum
{
    if(denomiantor != 0)
    return (double)numerator/denomiantor;
    else
    return NAN;
}
@end
int main(int argc,char* argv[])
{
    @autoreleasepool{
    Fraction *aFraction = [[Fraction alloc]init];
    Fraction *bFraction = [[Fraction alloc]init];
    [aFraction setNumerator:1];
    [aFraction setDenominator:4];
    [aFraction print];
    NSLog(@"=");
    NSLog(@"%g",[aFraction convertToNum]);
    [bFraction print];
    NSLog(@"=");
    NSLog(%g,[bFraction convertToNum]);
    }
    return 0;
}

**if-else结构
如果一些人告诉你一些数字,你将要做一些判断对于这些数字。如果这些数字是0,2,4,6,8.你将要读出这些状态是偶数。否则,你将要声明这些状态为基数。可以用除以2的方式来判断是否是奇数还是偶数。现在让我们来写一个程序来判断这个整数的值到底是奇数还是偶数。看下面的程序
#import <Foundation/Foundation.h>
int main(int argc,char* argv[])
{
    @autoreleasepool{
    int number_to_test,remainder;
    NSLog(@"Enter your number to be started:");
    scanf("%i",&number_to_test);
    remainder = number_to_test%2;
    if(remainder == 0)
    NSLog(@"the number is even.");

    if(remainder!=0)
    NSLog(@"the number is odd");
    }
    return 0;
}
请看下面的if-else结构的程序
#import<Foundation/Foundation.h>
int main(int argc,char* argv[])
{
    @autoreleasepool{
    int number_to_test,remainder;
    NSLog(@"Enter your number to be tested:");
    scanf("%i",&number_to_test);
    remainder = number_to_test%2;
    if(remainder == 0)
    NSLog(@"The number is even");
    else
    NSLog(@"the number is odd");
    }
    return 0;
}

请看下面的代码:
if(expression 1)
    program statement 1
else
     if(expression 2)
    program statement 2
    else
    program statetment 3
这是有效率的拓展这个状态从两个逻辑判断扩展为三个逻辑判断。
if(expression 1)
    program statement 1
else if(expression 2)
else
    program statement 3

这个下一个程序解释是用这个else if结构通过补充这个功能。
#import <Foundation/Foundation.h>
int main(int argc,char* argv[])
{
    @autoreleasepool{
    int number,sign;
    NSLog(@"please type in a number:");
    scanf("%i",number)
        
    if(number<0)
    sign = -1;
    else if(number == 0)
    sign = 0;
    else
    sign = 1;
    }
}
*下一个程序将要分析这个字符,来辨识这个数字从(a-z或A-Z)。读一个单一的字符从终端,这个%c用scanf来调用。
import <Foundation/Foundation.h>
int main(int argc,char* argv[])
{
    @autoreleasepool{
    char c;
    NSLog(@"Enter a single character");
    scanf("%c",&c);
    if((c>='a'&&c<='z')||(c>='A'&&c<='Z'))
    NSLog(@"it is a character.");
    else if(c>='0'&& c<='9')
    NSLog(@"it is a digit");
    else
    NSLog(@"it is a special character");    
    }
    return 0;
}
#import <Foundation/Foundation.h>
@interface Calculator:NSObject
-(void) setAccumulator:(double)value;
-(void) clear;
-(double) accumulator;
-(void)add:(double)value;
-(void)multiply:(double)value;
-(void)divide:(double)value;
@end
@implementation Calculator
{
    double accumulator;
}
-(void)setAccumulator:(double)value
{
    accumulator = value;
}
-(void)clear
{
    accumulator = 0;
}
-(double) accumulator
{
    return accumulator;
}
-(void)add:(double)value
{

    accumulator += value;
}
-(void)multiply:(double)value
{
    accumulator *= value;
}
-(void)divide:(double)value
{
    accumulator /= value;
}
@end

int main(argc,char* argv[])
{
    @autoreleasepool{
    double value1,value2;
    char operator;
    Calculator *deskCalc = [[Calculator alloc]init];    
    NSLog(@"type in your expression.");
    scanf("%lf%c%lf",&value1,&operator,&value2);
        
}
}

*这个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
    break;
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值