私は Objective-C を 5 日間学習しており、プログラミング経験は 2 週間しかないので、できるだけ簡単に答えてください。
私は本で演習を行っており、通常の単語でもある固有名詞のリストを生成するよう求められています。NSArray
これを行うために、適切な名前オブジェクトから適切な名前ごとに for ループを実行しています。NSArray
その for ループ内には、ネストされた for ループがあり、メソッドを使用して通常の単語オブジェクト内の各単語に対して各名前をテストしますcaseInsensitiveCompare
。
これが私のコードです:
import <Foundation/Foundation.h>
int main(int argc, const char * argv[])
{
@autoreleasepool {
//Gets the sting with proper names
NSString *propername = [NSString stringWithContentsOfFile:@"/usr/share/dict/propernames" encoding:
NSUTF8StringEncoding error:NULL];
//Gets the string with regularwords
NSString *inpropername = [NSString stringWithContentsOfFile:@"/usr/share/dict/words" encoding:
NSUTF8StringEncoding error:NULL];
NSArray *proper = [propername componentsSeparatedByString:@"/n"];
NSArray *inproper = [inpropername componentsSeparatedByString:@"/n"];
for (NSString *n in proper){
NSLog(@"%@", n);
for(NSString *i in inproper){
NSLog(@"%@", i);
if ([n caseInsensitiveCompare:i] == NSOrderedSame)
{
NSLog(@"Yahooo! Got One! %@", n);
}
}
}
}
return 0;
}
ネストされた形式で実行される for ループの代わりに、それらは順次形式で実行されます。出力は次のようになります。
Aaron
all the names...
Yvonne
a
all the regular words....
Zyzzogeton
ネストされた for ループがネストされた方法で実行されない理由についてのアイデアはありますか?