基本ルール問題


問題1

【やりたいこと】:「HelloWorld!!」 を出力したい。

【エラーがでている】:下記のコードで1箇所エラーがあります。どこが間違っているでしょう?

【ファイル名】:GrammerQuestion001.java

public class GrammerQuestion001 {
    public static void main(String[] args){
        System.out.println("HelloWorld!!")
    }
}

【解決方法】
3行目の最後の行にプログラムの終わりを指し示すセミコロン「;」をつける必要があります。

public class GrammerQuestion001 {
    public static void main(String[] args){
        System.out.println("HelloWorld!!");//最後にセミコロン(;)が抜けている。
    }
}

【解説】
3行目の最後の部分で赤波線が入っており,Eclipseの場合,左側に×印が表示され,そちらにマウスをあわせると
「構文エラーがあります。";" を挿入して BlockStatements を完了してください」といったメッセージを確認できると思います。
この場合は,セミコロンの打ち忘れの可能性があります。その場合は,セミコロンをつけてエラーを解消しましょう。

【スッキリわかるJava入門編第2版の参考ページ】42ページ


問題2

【やりたいこと】:「HelloWorld!!」 を出力したい。

【エラーがでている】:下記のコードで1箇所エラーがあります。どこが間違っているでしょう?

【ヒント】:良く確認しないとわからないです。

【ファイル名】:GrammerQuestion002.java

public class GrammerQuestion002 {
    public static void main(String[] args){
        System.out.print("Hello");
        System.out.println("World!!");
    }
}

【解決方法】
4行目の最後の行のセミコロンが全角文字となっているので,半角でセミコロン「;」を入力しなおします。

public class GrammerQuestion002 {
    public static void main(String[] args){
        System.out.print("Hello");
        System.out.println("World!!");//最後のセミコロンを半角のセミコロンで打ち直します。
    }
}

【解説】
4行目のセミコロン部分で赤波線が入っており,Eclipseの場合,左側に×印が表示され,そちらにマウスをあわせると
「トークン "Invalid Character" に構文エラーがあります。正しくは ;です」といったメッセージを確認できると思います。
この場合は,セミコロンの打ち間違いの可能性があります。その場合は,半角のセミコロンをつけてエラーを解消しましょう。

※Javaの場合,大文字や小文字,全角,半角などはプログラムでは区別して取り扱うため,そちらに気をつけましょう。

【スッキリわかるJava入門編第2版の参考ページ】37ページ


問題3

【やりたいこと】:「HelloWorld!!」 を出力したい。

【エラーがでている】:下記のコードで1箇所エラーがあります。どこが間違っているでしょう?

【ファイル名】:GrammerQuestion003.java

public class GrammerQuestion003 {
    public static void main(String[] args){
        system.out.println("HelloWorld!!");
    }
}

【解決方法】
3行目のsystem.out.printlnの最初の文字を大文字のSへ変更します。

public class GrammerQuestion003 {
    public static void main(String[] args){
        System.out.println("HelloWorld!!");//system.out.printlnの最初の文字をSに打ち直します。
    }
}

【解説】
3行目のsystem部分で赤波線が入っており,Eclipseの場合,左側に×印が表示され,そちらにマウスをあわせると
「system を解決できません」といったメッセージを確認できると思います。
この場合は,クラス名などで「system」というものが見つからないということで,打ち間違いがある可能性があります。
文字列を出力する場合,「System.out.println」を使いますので,Systemと打ち直す必要があります。

※Javaの場合,大文字や小文字,全角,半角などはプログラムでは区別して取り扱うため,そちらに気をつけましょう。

【スッキリわかるJava入門編第2版の参考ページ】42ページ


問題4

【やりたいこと】:「HelloWorld!!」 を出力したい。

【エラーがでている】:下記のコードで1箇所エラーがあります。どこが間違っているでしょう?

【ファイル名】:GrammerQuestion004.java

public class GrammerQuestion004 {
    public static void main(String[] args){
        System.out.println("HelloWorld!!);
    }
}

【解決方法】
3行目のHelloWorld!!の後ろにダブルクォーテーションが足りていないので「"」を追加します。

public class GrammerQuestion004 {
    public static void main(String[] args){
        System.out.println("HelloWorld!!");//HelloWorld!!をダブルクォーテーション「"」でくくります。
    }
}

【解説】
3行目の"HelloWorld!!);部分で赤波線が入っており,Eclipseの場合,左側に×印が表示され,そちらにマウスをあわせると
「文字列リテラルがダブル・クォートによって正しく閉じられていません」といったメッセージを確認できると思います。
この場合は,プログラムに文字列として認識させるために,表示したい文字列をダブルクォートで囲んであげる必要があります。

※Javaの場合,文字列型のStringの値については,ダブルクォートで囲む必要があります。
例)

String name = "Bebeit"; //こちらは問題なし。
String age = 11; //こちらはエラーとなる。(プログラムとしては,整数値のintだと間違ってしまうため。)      

【スッキリわかるJava入門編第2版の参考ページ】19-20ページ


問題5

【やりたいこと】:「HelloWorld!!」 を出力したい。

【エラーがでている】:下記のコードで1箇所エラーがあります。どこが間違っているでしょう?

【ファイル名】:GrammerQuestion005.java

public class GrammerQuestion005 {
    public static void main(String[] args){
        System.out.println("HelloWorld!!");
    
}

【解決方法】
4行目のmainメソッドのブロックの波カッコの閉じ「}」を追加します。

public class GrammerQuestion005 {
    public static void main(String[] args){
        System.out.println("HelloWorld!!");
    }//mainメソッドのブロックの「}」を追加します。
}    

【解説】
5行目の}部分で赤波線が入っており,Eclipseの場合,左側に×印が表示され,そちらにマウスをあわせると
「構文エラーがあります。"}" を挿入して ClassBody を完了してください」といったメッセージを確認できると思います。
この場合は,ブロックの{}の対となるものが足りていない場合がありますので,
ブロックの範囲が正しくなるように囲んであげる必要があります。

【スッキリわかるJava入門編第2版の参考ページ】34-39ページ


問題6

【やりたいこと】:「HelloWorld!!」 を出力したい。

【エラーがでている】:下記のコードで1箇所エラーがあります。どこが間違っているでしょう?

【ファイル名】:GrammerQuestion006.java

public class GrammmerQuestion006 {
    public static void main(String[] args){
        System.out.println("HelloWorld!!");
    }
}

【解決方法】
1行目のクラス名でmが一つ多く入力されているので,ファイル名にあわせて,「GrammerQuestion006」に変更する。

public class GrammerQuestion006 {//クラス名部分を「GrammerQuestion006」に変更する。
    public static void main(String[] args){
        System.out.println("HelloWorld!!");
    }
}    

【解説】
1行目のGrammmerQuestion006部分で赤波線が入っており,Eclipseの場合,左側に×印が表示され,そちらにマウスをあわせると
「public 型 GrammmerQuestion001 はそれ独自のファイル内に定義されなければなりません」といったメッセージを確認できると思います。
ファイルの名前は,クラス名と一致していなければなりません。
また,クラス名はアルファベットの大文字からスタートすることが基本となります。

【スッキリわかるJava入門編第2版の参考ページ】36ページ


問題7

【やりたいこと】:「HelloWorld!!」 を出力したい。

【エラーがでている】:下記のコードで1箇所エラーがあります。どこが間違っているでしょう?

【ファイル名】:GrammerQuestion007.java

public class GrammerQuestion007 {
    public static void main(String[] args){
        System.out.printIn("HelloWorld!!");
    }
}

【解決方法】
3行目のメソッドが「printIn」となっているので,「I(アイの大文字)」ではなく「l(エルの小文字)」に変更する。

public class GrammerQuestion007 {
    public static void main(String[] args){
        System.out.println("HelloWorld!!");//printlnに変更する。
    }
}    

【解説】
3行目のprintIn部分で赤波線が入っており,Eclipseの場合,左側に×印が表示され,そちらにマウスをあわせると
「メソッド printIn(String) は型 PrintStream で未定義です」といったメッセージを確認できると思います。
本来文字列を出力する場合には,printlnというメソッドを利用しますが,打ち間違えでメソッドが見つからない場合に,
このようなエラーがでることがありますので,打ち間違えに気をつけましょう。

※間違えやすい文字としては,下記のようなものがあります。

l  I  1 | //順にアルファベットの小文字のエル,アルファベットの大文字のアイ,数字のイチ,記号のパイプ。
o  O  0 //順にアルファベットの小文字のオー,アルファベットの大文字のオー,数字のゼロ。
:  ; //順にコロン,セミコロン。
,  . //順にカンマ,ピリオド。
'  " //順にシングルクォート,ダブルクォート。

【スッキリわかるJava入門編第2版の参考ページ】37ページ


問題8

【やりたいこと】:「HelloWorld!!」 を出力したい。

【エラーはでてはいないが。。。】:実行時にエラーとなります。どこが間違っているでしょう?

【ファイル名】:GrammerQuestion008.java

public class GrammerQuestion008 {
    public static void main(String args){
        System.out.println("HelloWorld!!");
    }
}

【解決方法】
2行目のメソッド定義の引数の型指定部分で[]が抜けているので追加する。

public class GrammerQuestion008 {
    public static void main(String[] args){//String[] argsに変更する。
        System.out.println("HelloWorld!!");
    }
}    

【解説】
2行目のmainメソッドの定義部分が間違っており,実行すると
「次のようにメイン・メソッドを定義してください。 public static void main(String[] args)」といったメッセージを確認できると思います。
Javaのmainメソッドの定義部分については,上記の形だとおまじないとして暗記しましょう。

Javaはmainメソッドから処理が始まります。

【スッキリわかるJava入門編第2版の参考ページ】34-37ページ


問題9

【やりたいこと】:「HelloWorld!!」 を出力したい。

【エラー】:3行目で,「トークンに構文エラーがあります。これらのトークンを削除してください」となっています。

【問題】:なにが原因となっているでしょうか?

【ヒント】:目視だけでは分かりづらいです。。。

【ファイル名】:GrammerQuestion009.java

public class GrammerQuestion009 {
    public static void main(String[] args){
      System.out.print("HelloWorld!!");
    }
}

【解決方法】
3行目のインデント部分に全角のスペースが含まれているので,半角スペースにする。

public class GrammerQuestion009 {
    public static void main(String[] args){
        System.out.println("HelloWorld!!");
    }
}    

【解説】
3行目のインデント部分で全角スペースが入っているので,それを半角スペースに置きなおします。
Eclipse の場合,表示部分の設定ができ,コードの間違いを確認しやすくする方法があります。
設定が出来ていない場合は,下記URLを参考に修正をしてみましょう。
Eclipseでタブ文字やスペースを表示する方法

【スッキリわかるJava入門編第2版の参考ページ】635ページ


問題10

【やりたいこと】:インデントを綺麗にしたい。

【問題】:インデントを綺麗にするためにはどうしたらよいでしょうか?

【ヒント】:Eclipse コードフォーマット で検索してみましょう。

【ファイル名】:GrammerQuestion010.java

public class GrammerQuestion010 {
public static void main(String[] args) {
System.out.println("HelloWorld!!");
}
}

【解決方法】
Eclipseの場合,WindowsやLinuxならCtrl+Shift+F、Macなら⌘Command+Shift+Fを押すことで,コードフォーマットをしてくれます。

public class GrammerQuestion010 {
    public static void main(String[] args) {
        System.out.println("HelloWorld!!");
    }
}

【解説】
プログラムを書く際にインデントなどがずれていると,コードの読みやすさを失ってしまい,
わかりづらくなってしまうので,上記のショートカットを使いながら,コードを綺麗に保ちましょう。
その他にもEclipseでは便利なショートカットなどがありますので,そちらも探して確認してみましょう。

※Eclipse ショートカット などで検索してみましょう。

【スッキリわかるJava入門編第2版の参考ページ】626ページ


問題11

【やりたいこと】:"¥1,080円になります。" と出力したい。

【問題】:下記プログラムでは,正しく出力されません。どのようにすればよいでしょうか?

【ファイル名】:GrammerQuestion011.java

public class GrammerQuestion011 {
    public static void main(String[] args) {
        System.out.print("\1,080円になります。");
    }
}

【解決方法】
¥マークは特殊な文字になるので,¥¥と入力しなおします。

public class GrammerQuestion011 {
    public static void main(String[] args) {
        System.out.print("\\1,080円になります。");
    }
}

【解説】
¥マークについては,Javaの場合に特殊文字になりますので,特別な記述方法にしなければなりません。
他にも,二重引用符の"(ダブルクォーテーション)や引用符の'(シングルクォーテーション)などがあります。
これらの文字を記述する際には,¥マークに続けて記述して,文字として認識させます。

特殊な文字の入力(エスケープシーケンス)

【スッキリわかるJava入門編第2版の参考ページ】63-65ページ