MST

星途 面试题库

面试题:Objective-C 中表达式与语句的区别及示例

请阐述 Objective-C 里表达式和语句的概念,并分别举例说明。例如,在一个简单的类方法调用场景中,指出哪些部分属于表达式,哪些属于语句。
37.6万 热度难度
编程语言Objective-C

知识考点

AI 面试

面试题答案

一键面试

表达式概念

表达式是由运算符和操作数组成的代码片段,它会返回一个值。操作数可以是变量、常量或函数调用等,运算符用于对操作数进行运算。例如 3 + 5,这里 35 是操作数,+ 是运算符,整个 3 + 5 就是一个表达式,它返回值 8

表达式举例

int a = 10;
int b = 20;
int result = a + b; // a + b 是表达式,返回值 30 赋给 result

语句概念

语句是执行特定操作的基本代码单元,它可以改变程序状态或控制程序流程。语句以分号 ; 结尾,一条语句可以包含一个或多个表达式。语句不一定有返回值。

语句举例

NSLog(@"Hello, World!"); // 这是一条语句,调用 NSLog 函数输出字符串,虽然 NSLog 有返回值,但这里主要作用是执行输出操作
int num = 5; // 声明变量并赋值,这是一条语句,将 5 赋值给 num 变量

类方法调用场景分析

假设我们有一个类 MyClass ,有一个类方法 classMethod

@interface MyClass : NSObject
+ (NSString *)classMethod;
@end

@implementation MyClass
+ (NSString *)classMethod {
    return @"Result from class method";
}
@end

int main(int argc, const char * argv[]) {
    @autoreleasepool {
        NSString *str = [MyClass classMethod]; // [MyClass classMethod] 是表达式,返回一个 NSString 对象,整个这一行是一条语句,将表达式返回值赋给 str 变量
        NSLog(@"%@", str); // 这是一条语句,输出 str 的值
    }
    return 0;
}

NSString *str = [MyClass classMethod]; 中,[MyClass classMethod] 属于表达式,因为它返回一个 NSString 对象。而 NSString *str = [MyClass classMethod]; 整体属于语句,它完成了变量声明、赋值等操作。NSLog(@"%@", str); 也是一条语句,用于执行输出操作。