naoppy-jyokenの日記

Javaで競プロをするぞ、NITAC情研用

Java入門4

今日の目標

プログラムの基本構造について知る。

人にとって読みやすいコードを書くことを知る。

準備

いつものように Code, Compile & Run | CodeChef にアクセスして、JAVAを選びましょう。

プログラムの構造

Java入門2でプログラムを書いている中で、気づいたことがあると思います。

以下のコードは毎回書く必要があること。そして、自分たちが命令を書いていくのは真ん中の部分だけだということです。

/* package codechef; // don't place package name! */

import java.util.*;
import java.lang.*;
import java.io.*;

/* Name of the class has to be "Main" only if the class is public. */
class Codechef
{
    public static void main (String[] args) throws java.lang.Exception
    {
        // ここが命令を書くところ
    }
}

Javaソースコードには波括弧{...}で囲われた部分が多く出てきます。 波括弧で囲われた部分をブロックといいます。

外側のブロックをクラスブロック内側のブロックをメソッドブロックと呼びます。

class Codechef
{
    //この中がクラスブロック
}
public static void main (String[] args) throws java.lang.Exception
{
    //この中がメソッドブロック
}

Javaソースコード必ずこの二重構造を持っています

私たちがコンピューターに対する命令を記述していくのはメソッドブロックの中となります。 その外側に関しては毎回書くお決まりのパターンですが、どんなプログラムでも全く同じでいいというわけではありません。 それについて説明します。

クラス名

public classの後に書かれる文字は、このプログラムの名前を指定するものでクラス名といいます。 クラス名は大文字のアルファベットで始まる名前を付けるのが一般的です。

クラス名は重要です。なぜならJavaには以下のようなルールがあるからです。

Javaソースコードを記述したファイルを保存するとき、ファイル名は「クラス名.java」にしなければならない。

今皆さんはweb上でJavaを試しているため、これらのことを考える必要はありません。 いずれ自分のコンピューターでプログラムを書く際には、ファイル名とクラス名を一致させるというルールを忘れないようにしましょう。

正確に記述する

プログラミングにおいて大事なことの一つ目は「正確に記述する」ということです。

  • 基本的に半角で記述する。大文字小文字の違いも意識する。
  • オー(o,O)とゼロ(0)、エル(l)とイチ(1)、コロン(:)とセミコロン(;)、ピリオド(.)とカンマ(,)を間違えない。
  • 括弧((), {}, [])や引用符(', ")の種類を間違えない。

これらは初心者がよく犯すミスなので気を付けましょう。プログラムは一文字違うだけで動かなかったり大きく動作が変わってしまいます。

public static void main(String[] args) {...}をスラスラ書けるようになりましょう。読み方はパブリック・スターティック・ボイド・メイン・ストリング[] argsです。

外から内へ

次に大事なのは、プログラムは上から下へではなく、外から内へ書く、という意識です。

はじめにこう書くと、中身を一生懸命書いている内に、}を閉じ忘れることが多々あります。

class Codechef
{
    public static void main (String[] args) throws java.lang.Exception
    {
        //ここを一生懸命書くと、}で閉じるのを忘れる。いくつ閉じればいいのかわからなくなる。

このミスを減らすため、括弧を開くとまず閉じる。それから中身を書く。という順でプログラムを書きましょう。

インデント

Javaでは文法上、キーワード間にどれだけ空白や改行を入れてもいいことになっています。 よって、こういったコードも書くことができます。

class Codechef{public static void main (String[] args) throws java.lang.Exception{System.out.println("Hello, World!");}}

しかし、これではプログラムの構造を把握することは難しいです。適切な場所で空白や改行を入れるようにしましょう。特にブロックの始まりから終わりで字下げをしてください。 この字下げの事をインデントといいます。

class Codechef
{
■■■public static void main (String[] args) throws java.lang.Exception
■■■{
■■■■■■//インデントでは、タブ文字を使います。TABキーで入力できます。
■■■■■■//一階層ごとにTAB一文字を使いましょう。
■■■■■■//この例では、黒四角3つ分をTAB文字1つとして読んでください。
■■■■■■//他の言語では、空白4つを使うこともありますが、JavaではTABが一般的です。
■■■}
}

コメント

今までも沢山ソースコード上にでてきましたが、説明しておきます。 ソースコードをより読みやすくするために、ソースコードの中に解説、注釈文を書き入れることができます。これをコメントといいます。 コメントはコンパイル、実行時両方で無視されます。人が読むためだけのものです。

Javaではコメントの書き方が2種類あります。

単一行コメント

//から行末まではコメントになります。

複数行コメント
/*
この間は全てコメントになる。
何行コメントを書いてもOK。
*/

終わりに

今回の記事は長くて疲れたかと思います。次回からはどんどんコーディングしていきます。今はイメージできなかったりわからないところは次回以降をするうちに自然にわかるようになるとおもいます。