ゼロからプログラミングコンテスト!

プログラミング経験ゼロから、プログラミングコンテストに挑戦できるよう、応援するブログです。実践が一番!

コメントの書き方について

コメントの書き方について



今回は、コメントの書き方についてお話します。
とは言っても、簡単なので、短い記事になると思います。
出力やったから次は入力じゃないの?と思うかも知れませんが、まぁよいでしょう。

コメントの書き方

1行コメントの書き方

さて、プログラムのコードは、前回の長さでは短かったですが、ゆくゆくは何百、何千行にわたるコードを書くかもしれません。
また、自分の書いたコードを、他の人に見てもらったり、修正してもらうことになるかも知れません。
そういったときに、コードが何を目標に書かれているか分かりやすくするために、『コメント』というものが書けます。
『コメント』というのは、コードの途中に書くものですが、『プログラムの実行の際には完全に無視される部分』です。

とりあえず、例をあげてみます。

import java.util.*;
public class Main {
  public static void main(String[] args){
    Scanner sc = new Scanner(System.in);

    System.out.println("Yeah!");
  }
}

これは前回のコードです。
これにコメントを入れてみると、こんな感じになります。

import java.util.*;
public class Main {
  public static void main(String[] args){
    Scanner sc = new Scanner(System.in);

    // out put "Yeah!"
    System.out.println("Yeah!");
  }
}

コードの内容を表すコメントが付け加えられました。
これをAtCoderのコードテスト上で実行してみて下さい。標準入力のところは空白のままで結構です。
コメントがない場合と全く同じ結果になったと思います。

上のように、コメントは

//

(半角のスラッシュ2つ)を頭につけて、書くことができます。

複数行に渡るコメントの書き方

ちなみに、バックスラッシュ2つのコメント法は、//からその行の終わりまでしかコメントにできません。
それは、どういうことでしょうか?
理解を深めるため、以下のコードをAtCoderで実行してみて下さい。

import java.util.*;
public class Main {
  public static void main(String[] args){
    Scanner sc = new Scanner(System.in);

    // out put "Yeah!"
       and then stop
    System.out.println("Yeah!");
  }
}

下の画像みたいな結果が出たと思います。



これはコンパイルエラーと言います。コンパイルとかそういう名前はさておき、これはプログラムの内容が正しくないことを表しています。
コンピュータ側からの「プログラムを頑張って読もうとしたけど、何書いてるか分かんないところがあったから無理だよ〜」というメッセージです。

さて、ここで問題が発生します。
コメントをいっぱい書きたい場合、どうすればよいでしょうか。
こういう場面は割と起こり得ます。コードが複雑な場合は、かなり多くのコメントがないと分かりにくいです。
そういうときに、例えば30行分のコメントを書くために30回 『//』 を書くのはかなり面倒です。
それを解決するため、Javaにはもう1つコメントの付け方があります。
それは

/*    */

で囲むというものです。
/* と */の間に挟まれた部分は、コンピュータに完全に無視されます。
以下に例を挙げてみます。

import java.util.*;
public class Main {
  public static void main(String[] args){
    Scanner sc = new Scanner(System.in);

    System.out.println("Yeah!");

    /*
    this program
    output "Yeah!"
    and then stop
    */
  }
}

これをAtCoder上で実行してみて下さい。
こちらは、問題なく実行できたと思います。

以上のように、コメントの付け方は2つあります。
なぜコメントの付け方をここに書いたかと言うと、これ以降のこのブログの記事では、コードの中にコメントで説明を書き込もうと思っているからです。
例えば、以下のようにしたいと思います(コードの内容はこれから扱っていくものなので、分からなくて結構です)。

import java.util.*;
public class Main {
  public static void main(String[] args){
    Scanner sc = new Scanner(System.in);

    int a, b; //整数2つを格納する変数
    a = 3; //aに3を代入
    b = 2; //bに2を代入

    /*
    そして、if文でaとbの大小を比較して、
    大きい方を出力
    同じならbを出力
    */
    System.out.print("max is "); //まず、『max is 』と出力
    if(a > b){
      System.out.println(a);
    }else{
      System.out.println(b);
    }
  }
}

このようなコードを見た場合、
「//からその行の終わりまでと、/* */で囲まれているところは"コメント"で、プログラムの実行には関係ないんだ」
と思いながら読んで下さい。

また、AtCoderのコードテスト上では大丈夫ですが、プログラムを実行する場所によっては、日本語(=全角文字)でコメントを書くとエラーが出る場合があります。
AtCoderのコードテスト上で実行する場合は大丈夫なので、このブログでは日本語でコメントを書きますし、練習問題を解く場合も日本語のコメントを入れて下さって結構ですが、
他の場所(自分でプログラムを書く、学校の授業で書くなど)では、コメントを入れる場合は英語(=半角文字)にした方がよいと思います。
英語で書くのが難しい、という方は、ローマ字で書くとよいと思います。
格好悪いと思うかも知れませんが、プログラミングを初めて学ぶ上では、自分の分かりやすさを最優先してよいと思います。
たとえば、こんな感じにコメントを書いても(少なくとも他人と協力して大規模なプログラムを書く、とかまでしない限りは)、十分大丈夫だと言うことです。

import java.util.*;
public class Main {
  public static void main(String[] args){
    Scanner sc = new Scanner(System.in);

    // "Yeah!" to dasu puroguramu
    System.out.println("Yeah!");

    //dashitara owari
  }
}

初歩から学ぶ際には、とにかく自分の分かりやすさを一番大事にしましょう!初めての場合は、プログラムなんてちゃんと動けば全部同じです。

というわけで、今回の練習問題です。


☆練習問題.以下のコードに、コメントを3つ以上付け足して、実行してみて下さい。ただし、//の方と /* */の方の両方を1回以上使うこと。
また、コメントなしとコメントありで実行結果が同じであることをAtCoderのコードテストで実行して確かめて下さい。

import java.util.*;
public class Main {
  public static void main(String[] args){
    Scanner sc = new Scanner(System.in);

    System.out.println("Yeah!");
  }
}

今回は解答例は付けません。人によって色々違うと思うので。

次は、変数の話、そして入力の話をします。