public class Hello{
public static void main(String[] argv){
System.out.println("Currents");
}
}
[Masatoshi-ONO:~/class/prog2/rep1] j03013% javac Hello.java
[Masatoshi-ONO:~/class/prog2/rep1] j03013% java Hello
Currents
[Masatoshi-ONO:~/class/prog2/rep1] j03013%
System.out.printlnが括弧内の文字を表示するものですので、その中身を変えることでHelloとは違う文字を表示することができました。
public class Genso2{
public static void main(String[] argv){
for(int i=0; i<3; i++){
System.out.println("Orrizonte");
}
}
}
[Masatoshi-ONO:~/class/prog2/rep1] j03013% javac Genso2.java
[Masatoshi-ONO:~/class/prog2/rep1] j03013% java Genso2
Orrizonte
Orrizonte
Orrizonte
[Masatoshi-ONO:~/class/prog2/rep1] j03013%
これは日本語の解釈が難しくて(というか自分の言語能力が低いんですが)、次のメッセージが表示されると前のメッセージが消えてしまうのか、次のメッセージが表示されるまである程度時間が必要なのか、などと頭をよぎりましたがよく分からないのでfor文をいれて表示するようにしました。
確かjavaの場合、変数の宣言は中の方で行うと言うことでしたのでintはfor文の中に入れました。ちなみに外の方で宣言した場合も動きました。しかしこの場合は下のようにfor文の前にないと動きませんでした。
public class Genso2{
public static void main(String[] argv){
int i;
for(i=0; i<3; i++){
System.out.println("Orrizonte");
}
}
}
intを{}の外に出して宣言するにはクラスの継承というのをやらなくてはならないそうです。まだ、勉強不足なのでここでは割愛させていただきます。
public class Hello {
public static void main(String[] argv){
System.out.println("Hello,\nJava World!");
}
}
[Masatoshi-ONO:~/class/prog2/rep1] j03013% javac Hello.java
[Masatoshi-ONO:~/class/prog2/rep1] j03013% java Hello
Hello,
Java World!
[Masatoshi-ONO:~/class/prog2/rep1] j03013%
ただ単にHello,とJava World!の間にC言語のように改行を示す\nを入れただけです。
下の2つのプログラムと実行結果を御覧下さい。
class test{
public static void main(String[] argv){
System.out.println("Hello, Tokyo");
System.out.print("Hello, Osaka");
}
}
[Masatoshi-ONO:~/class/prog2/rep1] j03013% javac test.java
[Masatoshi-ONO:~/class/prog2/rep1] j03013% java test
Hello, Tokyo
Hello, Osaka[Masatoshi-ONO:~/class/prog2/rep1] j03013%
これは上がprintln、下がprintにした場合です。
class test{
public static void main(String[] argv){
System.out.print("Hello Osaka");
System.out.println("Hello, Tokyo");
}
}
[Masatoshi-ONO:~/class/prog2/rep1] j03013% javac test.java
[Masatoshi-ONO:~/class/prog2/rep1] j03013% java test
Hello OsakaHello, Tokyo
[Masatoshi-ONO:~/class/prog2/rep1] j03013%
これは逆に上がprint、下がprintlnにした場合です。
見ての通り、printではprintlnの様に最後が改行されません。他の機能はだいたい同じのようです。
public class Genso2{
public static void main(String[] argv){
for(int i=0; i<3; i++) {
System.out.print("Orrizonte");
}
}
}
[Masatoshi-ONO:~/class/prog2/rep1] j03013% javac Genso2.java
[Masatoshi-ONO:~/class/prog2/rep1] j03013% java Genso2
OrrizonteOrrizonteOrrizonte[Masatoshi-ONO:~/class/prog2/rep1] j03013%
上で分かった2つの結果(bとd)を組み合わせてみました。for文で3回表示して、print文で改行しないようにしました。
* *** ***** *** *プログラム
public class hisigata{
public static void main(String[] argv){
System.out.println(" *");
System.out.println(" ***");
System.out.println("*****");
System.out.println(" ***");
System.out.println(" *");
}
}
[Masatoshi-ONO:~/class/prog2/rep1] j03013% javac hisigata.java
[Masatoshi-ONO:~/class/prog2/rep1] j03013% java hisigata * *** ***** *** * [Masatoshi-ONO:~/class/prog2/rep1] j03013%
実行結果が少しずれたりしたので手直しがちょっとありました。これはprintlnとスペースを使って*を所定の位置まで持っていきました。printでもできるんでしょうけど¥nを入れながらの調整は大変そうです。
public class hajirusi{
public static void main(String[] argv){
System.out.println(" **");
System.out.println(" **");
System.out.println("***********");
System.out.println(" **");
System.out.println(" **");
}
}
[Masatoshi-ONO:~/class/prog2/rep1] j03013% javac hajirusi.java
[Masatoshi-ONO:~/class/prog2/rep1] j03013% java hajirusi ** ** *********** ** ** [Masatoshi-ONO:~/class/prog2/rep1] j03013%
すみません、自分は美的感覚がないんでこんな代わり映えのしない矢印を作りました。プログラムの書き方はほぼfと同じです。
Java compilerはGNU compilerと違ってコンパイル時に細かいエラーを報告してくれます。
例(ファイル名をHelloとした場合)public class Hello { public static boid main(String[] argv){ System.out.plintln("Hello,Java World!"); } }
[Masatoshi-ONO:~/class/prog2/rep1] j03013% javac Hello.java Hello.java:2: シンボルを解決できません。 シンボル: クラス boid 場所 : Hello の クラス public static boid main(String[] argv){ ^ Hello.java:3: シンボルを解決できません。 シンボル: メソッド plintln (java.lang.String) 場所 : java.io.PrintStream の クラス System.out.plintln("Hello,Java World!"); ^ エラー 2 個 [Masatoshi-ONO:~/class/prog2/rep1] j03013%
上のように間違った所を指摘してくれますが、幾つかの特定なエラーがあると正しく返さない時があります。
例2public class Hallo { public static void main(String[] argv){ System.out,plintln("Hello,Java World!"); } }
[Masatoshi-ONO:~/class/prog2/rep1] j03013% javac Hello.java Hello.java:3: 文ではありません。 System.out,plintln("Hello,Java World!"); ^ Hello.java:3: ';' がありません。 System.out,plintln("Hello,Java World!"); ^ Hello.java:1: クラス Hallo は public であり、ファイル Hallo.java で宣言しなければなりません。 public class Hallo { ^ エラー 3 個 [Masatoshi-ONO:~/class/prog2/rep1] j03013%
上のようにprintlnのスペルが間違っていても、前の部分が間違っているとそこでエラーを返し終わってしまいます。エラーの報告には優先順位があるみたいです。
JavaはC言語とところどころ似通ったものがあったのでいきなり頭がパニックになることはありませんでした。htmlの知識が不十分なので見づらいページになってしまいました。すみません。