修正日: 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以下)は全部春、です。こっちの方がたぶん分かりやすいですね。
このようにプログラムの答えというのは一種類ではありません。他の人のやり方が必ず正しいとも限りませんし、正しく動作してももっと良い書き方があるかもしれません。いろいろ試してみてください。