目的
C#ってなんか難しそう...って人のために、こんな感じでも動くんだよ~というのを示して敷居を下げる目的で記事を書きました。
コード
こちらが正解をもらったコードになります。
using System;
class Program
{
static void Main()
{
var upper = Console.ReadLine();
if(int.TryParse(upper, out var naturalNum)){
for(int i = 1; i <= naturalNum; i++){
if(i % 3 == 0 && i % 5 == 0){
Console.WriteLine("Fizz Buzz");
}
else if(i % 3 == 0){
Console.WriteLine("Fizz");
}
else if(i % 5 == 0){
Console.WriteLine("Buzz");
}
else{
Console.WriteLine(i);
}
}
}
else{
Console.WriteLine("整数でないものが入力されました。");
}
}
}
見て頂ければわかると思いますが、TryParseメソッド(関数)以外は、Cが分かれば理解できるようになっております。(Console.WriteLine()はCでいうprintf()、Console.ReadLine()はCでいうscanf()と機能的には同じです!)
おまじない
プログラムを見てみると、「using System」や「class Program」のような見慣れないものがありますが、1つの機能を作るならこれらは「おまじない」として無視してしまっても大丈夫です。
とりあえず、static void Main(){}の{}内にプログラムを書けばよいと思ってください。
TryParseについて
さて、「おまじない」を無視したところで、なにやら「TryParse」という謎の文がありますね。
ここら一帯で何をやっているかということについてですが、簡単に言うと、入力された値が正常であるかということを調べ、正常ならば型変換を、そうでなければ例外処理をしています。
構文は以下の通りです。
int.TryParse([string s], out [int result]);
この関数は値が正常であるかどうかを調べ、以上なら0(false)を返してくれます。if文の中身はCと同じで中身がTrueのときに{}内が実行されるため、この構文を()内に入れてあげれば、ifとelseだけで例外を簡単に弾くことができます。
(ちなみに、Parseメソッドで例外をキャッチする方法もありますが、コードを書くのも面倒かつ処理コストが重くなるため、推奨しません)
こういった例外処理を早めに習得しておくことで、後々楽になるかもしれませんよ!
まとめ
C#、できることが結構多いので最初は混乱しがちですが、Cで実装可能な機能は基本的に大体実装できるので、良かったら触れてみてはいかがでしょうか(ポインタを除く)
以上です。
参考: