2015-06-28 56 views
-2
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
{ 
    NSInteger n = 5; 
    NSInteger nFactorial = n; 
    while (n > 1) { 
     nFactorial = nFactorial * --n; 
    } 
    NSLog(@"The factorial of %ld is %ld", (long)n, (long)nFactorial); 
    return YES; 
} 

对于此代码,为什么nFactorial必须初始化为n?为什么代码不能在所有有nFactorial的地方使用n?循环格式化

回答

0
  1. 为了使第一个循环有正确的结果。
  2. nFactorial = nFactorial * --n,' - '具有更高的优先级。

如果使用n取代nFactorial,第二nFactorial的价值是不是我们的例外。