修正日: 07/06/20  
 練習問題1   
 解答編
練習問題1の解答です。そんなに難しくないと思いますが、いかがでしょうか?
- 20より大きければ夏
 - 10より小さければ冬
 - 10以上20以下なら春
 
ということで以下のように書くことができます。(サンプルコード)
- (IBAction)whichSeason:(id)sender
{
   int temperature = [temperatureField intValue];
   if(temperature > 20)
      [seasonField setStringValue:@"Summer!"];
   else if(temperature < 10)
      [seasonField setStringValue:@"Winter!"];
   else if(temperature >= 10 && temperature <= 20)
      [seasonField setStringValue:@"Spring!"];
}&&の使い方を覚えてますか?(A&&B)であれば「AでありかつBであるとき」という意味です。これで正解です。
でももうちょっと考えてみましょう。この場合もっと単純に、「夏でも冬でもなければ春」と考えることができます。つまりこういう風に書くこともできます。
- (IBAction)whichSeason:(id)sender
{
   int temperature = [temperatureField intValue];
   if(temperature > 20)
      [seasonField setStringValue:@"Summer!"];
   else if(temperature < 10)
      [seasonField setStringValue:@"Winter!"];
   else
      [seasonField setStringValue:@"Spring!"];
}20より大きければ夏、10より小さければ冬、それ以外(つまり10以上20以下)は全部春、です。こっちの方がたぶん分かりやすいですね。
このようにプログラムの答えというのは一種類ではありません。他の人のやり方が必ず正しいとも限りませんし、正しく動作してももっと良い書き方があるかもしれません。いろいろ試してみてください。