1
2
paiza×Qiita記事投稿キャンペーン「プログラミング問題をやってみて書いたコードを投稿しよう!」

[ほぼC] C#で簡単に分かりやすく「Fizz Bazz」を解いてみました! [paiza]

Last updated at Posted at 2024-08-23

目的

C#ってなんか難しそう...って人のために、こんな感じでも動くんだよ~というのを示して敷居を下げる目的で記事を書きました。

コード

こちらが正解をもらったコードになります。

Program.cs
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.cs
int.TryParse([string s], out [int result]);

この関数は値が正常であるかどうかを調べ、以上なら0(false)を返してくれます。if文の中身はCと同じで中身がTrueのときに{}内が実行されるため、この構文を()内に入れてあげれば、ifとelseだけで例外を簡単に弾くことができます。

(ちなみに、Parseメソッドで例外をキャッチする方法もありますが、コードを書くのも面倒かつ処理コストが重くなるため、推奨しません)

こういった例外処理を早めに習得しておくことで、後々楽になるかもしれませんよ!

まとめ

C#、できることが結構多いので最初は混乱しがちですが、Cで実装可能な機能は基本的に大体実装できるので、良かったら触れてみてはいかがでしょうか(ポインタを除く)
以上です。

参考:

1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2