■掲示板に戻る■ ■過去ログ倉庫一覧■
【Java】勉強部屋×メモ【Java】- 1 :にあ:2011/11/10(木) 12:32:27 ID:UW7xK5YM0
- Java専用です
雑談は
【JAVA】勉強部屋×雑談2【ruby】
http://jbbs.livedoor.jp/bbs/read.cgi/internet/12569/1320314821/
rubyは
【ruby】勉強部屋×メモ【ruby】
http://jbbs.livedoor.jp/bbs/read.cgi/internet/12569/1320878836/
- 2 :にあ:2011/11/10(木) 12:33:19 ID:UW7xK5YM0
- package exercise;
public class Sample001 {
public static void main(String[] args){
System.out.println("hello");
System.out.println("こんにちは");
System.out.println("ごきげんよう");
}
}
javaではプロジェクトがあり、その下にpackage(一行目はpackage宣言)、packageの下にクラス(三行目はクラス宣言)があります。
System.out.printlnは()の中にあるものを表示して、改行します。改行しない場合はSystem.out.printを使いまする(´・ω・`)
System.out.printlnとかの最初のSは大文字でお願いします。
基本println・printでは()の中の物を表示します(計算でも何でも表示できる)。ただし、文字列の表示の場合は""でその文字列を囲います。""で囲んでいるものは中に数字が入っていようが何だろうが、文字列 になります(`・ω・´)
println・printの()内に数学・算数の式を入れた場合はその答えが出力されます。
文字列と数字を連結(+で結ぶことも出来ます)。
・("ぼくドラえもん" + 30 + 30 + "年後から来たよ" ) ←の場合は ぼくドラえもん3030年後から来たよ と出力されます。
・("ぼくドラえもん" + (30 + 30) + "年後から来たよ" ) ←の場合は ぼくドラえもん60年後から来たよ と出力されます。
式に+しか使用してない場合、左から順に処理されていきますが文字列+数字(数字+文字列)だと数字が強制的に文字列に取り込まれてしまいます。
そのため、2つ目の文では()で優先順位を変えてます。
質問にはお答えします。
{}と文の最後にある;についてはまた今度。
でも質問されたら答えます。
でも出来ればいまはし(ry
- 3 :にあ:2011/11/10(木) 12:33:50 ID:UW7xK5YM0
- ・System.out.println("ぼくドラえもん" + 30 + 30 + "年後から来たよ" ) ←の場合は ぼくドラえもん3030年後から来たよ と出力されます。
・System.out.println("ぼくドラえもん" + (30 + 30) + "年後から来たよ" ) ←の場合は ぼくドラえもん60年後から来たよ と出力されます。
上の文では()の中で所々空白を入れてるけど、それは見やすいように入れてるだけで実際入れても入れなくてもどうでもいいです(´・ω・`)
- 4 :にあ:2011/11/10(木) 12:34:20 ID:UW7xK5YM0
- System.out.println("hello");
System.out.println("こんにちは");
System.out.println("ごきげんよう");
は
hello
こんにちは
ごきげんよう
って表示されます(´・ω・`)
printlnは表示されてから、改行!
- 5 :にあ:2011/11/10(木) 12:35:50 ID:UW7xK5YM0
- package exercise;
public class Sample001 {
public static void main(String[] args){
System.out.println("hello");
System.out.println("こんにちは");
System.out.println("ごきげんよう");
}
}
まず1行目
package宣言は
package exercise;
となっているけど
package 任意の名前(わかりやすく);
でいいのかな?
3行目もしかり。
public class 任意の名前(最初は大文字?){
何を表してるのかさっぱりわかってない{
どうやらここからプログラムの肝である命令が書かれている
}
}
System.out.printlnは()の中にあるものを表示して、改行します。改行しない場合はSystem.out.printを使いまする(´・ω・`)
System.out.printlnとかの最初のSは大文字でお願いします。
これはわかった。これが肝の部分ね。
基本println・printでは()の中の物を表示します(計算でも何でも表示できる)。ただし、文字列の表示の場合は""でその文字列を囲います。""で囲んでいるものは中に数字が入っていようが何だろうが、文字列 になります(`・ω・´)
文字列ってことでダブルクォーテーション。
数字や数式はダブルクォーテーションなしでってことだぬ(´・ω・`)?
println・printの()内に数学・算数の式を入れた場合はその答えが出力されます。
文字列と数字を連結(+で結ぶことも出来ます)。
ここがrubyと大きく違う。
つまり単純に書くことか可能になるってことですね。
・("ぼくドラえもん" + 30 + 30 + "年後から来たよ" ) ←の場合は ぼくドラえもん3030年後から来たよ と出力されます。
・("ぼくドラえもん" + (30 + 30) + "年後から来たよ" ) ←の場合は ぼくドラえもん60年後から来たよ と出力されます。
()で囲まれた部分は数式として先に計算された結果、60になった。
これも理解。
ここら辺も普通に数学の理論適応ってことかな?
ほんで;
これは{}の中の場合改行にあたるのかな?
ま、これはわかるなら教えてw
- 6 :にあ:2011/11/10(木) 12:37:02 ID:UW7xK5YM0
- >>156
あれ
そうだ
改行はここでされてるように命令文なんだ…(´・ω・`)?
じゃあ;ってなんだ?
なんなんだ??
命令文の終了の合図的な何か?
perlでもあったけど
perlと同じ??
- 7 :にあ:2011/11/10(木) 12:37:52 ID:UW7xK5YM0
- package exercise;
public class Sample001 {
public static void main(String[] args){
System.out.println("hello");
System.out.println("こんにちは");
System.out.println("ごきげんよう");
}
}
正確にはこんな感じ…
コピペだと空白の位置がずれるのね…
・まず1行目のパッケージ宣言について
最初に言ったプロジェクトがシステム全体を指します。
プロジェクトの中で、機能によって幾つかに分かれているのがパッケージです。
(パッケージ1にはこの機能、パッケージ2にはこの機能、パッケージ3にはこの機能…)
パッケージ名や変数名、そして3行目のクラス名はある程度、自由につけることができます。
プログラマが自由につけていい名前を「識別子」と言います。
パッケージ・変数名:先頭文字を小文字にすること(基本的に小文字を使う)
3行目のクラス名 :先頭文字を大文字にする(他は基本的に小文字)
※ただし、上記にも出ているclassやpackageなど、宣言や処理を記述するのに使われる単語(「予約語」という)を名前に使うことはできない。
※パッケージ・クラス・変数の名前に使用できる記号は、_と$のみ。
※数字から始まってはいけない
※英語の大文字・小文字は別のものとして扱われる(例:owata Owata oWata OWATA ←全部別のものとして扱われる)
※少し前に「予約語」は使用できないといったけど、一部を大文字にしたりすれば使うことができる。
以下は別に守らなくてもいいんだけど、見やすいということで普通はこう書いてる
・基本的に小文字を使用します。
・2つ以上の単語をつなげるときは、2つ目以降の単語の先頭文字を大文字にするか、_で繋ぐ
例:muripoowata →muripoOwata か muripo_owata
:riajyuubakuhatusiro →riajyuuBakuhatuShiro か riajyuu_bakuhatu_shiro
みたいな感じです。
識別子(自由につけていい名前)は日本語も使ってもいいみたいですが、基本的には英語を使用するみたいです。
続いて3行目に行きます。
javaではプログラムをクラス単位で作成します。3行目はクラスが始まる部分で、クラス宣言と呼ばれています。
「public class」は宣言のキーワード(publicの説明は今してしまうとこんがらがってしまうので後半に突入したらします)
「sample001」がクラス名になります。クラス名は好きな名前を付けられますが、先頭の文字は英大文字でお願いします。
詳しくは上記参照。
- 8 :にあ:2011/11/10(木) 12:38:18 ID:UW7xK5YM0
- ふむふむ…(´・ω・`)
大文字、小文字の使い分けが厳密なのは他でも一緒だよね。
これはでもやはり一般的な書き方をきちんと守った方がやり易いね。
日本語使えるってのは驚きだけど、プログラム組んでいる際に入力切り替えは正直面倒だし間違いも出やすくなるからやはり半角英数で記述のがいいね。
二つを結びつけるのはアンダーバーのがやり易いかも…(´・ω・`)
public classの先頭は大文字は把握したお!
- 9 :にあ:2011/11/10(木) 12:38:34 ID:UW7xK5YM0
- そして識別子ね。
私、perl習ったとき、こう言った専門用語はほとんどすっとばして覚えたから一つ一つ説明してもらえるとわかりやすくていいお。
説明無しに使われると混乱するから。
- 10 :にあ:2011/11/10(木) 12:39:08 ID:UW7xK5YM0
- >>232の続き
package exercise;
public class Sample001 {
public static void main(String[] args){
System.out.println("hello");
System.out.println("こんにちは");
System.out.println("ごきげんよう");
}
}
※4行目の解説の前に1つだけ…
2行目に空白行を入れていますが、コレは入れても入れなくてもいいです。空白行は何行入れても構いません。
ただ見やすいように挿入しているだけなので基本、何処に入れても大丈夫でしょう(多分)。
では4行目の解説に入ります(´・ω・`)。
・4行目には public static void main(String[] args){ と書かれています。
プログラムの本体に当たる部分を 「メソッド」 と言います。今回の例では主に4行目〜8行目の事です。
4行目を 「メソッド宣言」 と言います。
クラスの中ではメソッドをたくさん作ることができます(制限はないのかな?)。今回の例はメソッドはmainメソッド一つ(4行目〜8行目の事です。)でしたが、
本来はクラスの中に幾つかメソッドを作成して、mainメソッドから作業ごとに合った別メソッド(プログラム)を呼び出したりします。
mainと名のついたメソッドは一番最初に実行されます。どんなに沢山メソッド(プログラム)があっても一番初めに実行されるのはmainです。
mainは一番初めに実行したいメソッド(プログラム)に付ける名前です。
※publicとstaticについては今は説明を省きます。何故かというとこれはオブジェクト指向に関係してて、私の持っている参考書ではかなり後ろに載っています。
今説明するとこんがらがる可能性があるので・・・(´・ω・`)
こんがらがってもいいよぅ〜…って思う場合は、明日の昼以降質問してくださいな。お答えします。夜中に質問されると私の頭がパンクする可能性が120%ですので…
今日一日何も食べてねぇべさ(´・ω・`)ハラ減ったよオイラ(´・ω・`)
※3・4・8・9行目の{}について
{}はプログラム本体の始まりを示す・終りを示す記号になります。
{}で囲まれた範囲は 「ブロック」 と言われています。
3行目の{でプログラム開始、9行目の}でプログラム終了の合図です。
4行目の{は 「メソッド宣言」 して命令文(処理)の開始を示す。8行目の}でmainメソッド終了の合図ですね。
今回はメソッド(プログラム)がmainメソッドだけなので、8行目の}(mainメソッド終了)の後すぐに9行目の}(プログラム本体終了のお知らせ)が来てますが、
続いてメソッド(プログラム)がある場合は、9行目で}を使って閉じずに、再び 「メソッド宣言(public static void ○○○)」をして処理内容を書きます。
○○○は任意の名前を使用できます(=識別子を使用することができる)
ですが、今回はメソッド(プログラム)はmainのみの前提で行きます。
・5行目から7行目の println は命令文と言って仕事を実行するための文(命令文)です。
命令文はメソッドのブロックの中(この場合、4行目の{から8行目の}までの間)に書かなければいけません。
特に制限はないので、何行でも書くことができます(9999999999行とか試したこと無いから書けるかわかりませんが・・・)。
命令文の具体的内容については後ほど…
命令文の最後には ;(セミコロン)が来てますが、これは必ず書かなければいけません(日本語の句点(。)にあたります)。
※例外があって、forやwhileなど for(while){ から始まって、}で終わる(つまり ; を書かない)命令文もあります。
- 11 :にあ:2011/11/10(木) 12:39:37 ID:UW7xK5YM0
- 馬鹿した
説明の
「メソッド宣言(public static void ○○○)」だが、「メソッド宣言( public static void メソッド名(){ )」だ。
2つ目のメソッド名の()に何が入るか、などは多分結構後になると思う(´・ω・`)
- 12 :にあ:2011/11/10(木) 12:39:59 ID:UW7xK5YM0
- >>250
なるほろ。
謎の部分はそう言う命令の種類を指定しているものだと思っていたけど、正確には命令の実行の順番を指定するためにあるものだったんですね。
それぞれにその指定のための書き方もある…と。
メソッド宣言 最初にこれをやりますよ、というわけか。
ほんで命令の最後の;はやっぱり思ったとおりの事だったのでちょっと馴染みやすいかも…と思えた。
空白、つまりタブについてはどのプログラムも同じだね。
無くても動くけど見やすく、わかりやすく、階層をつけやすく。ってところかな?
そして
forやwhileなどの繰り返し構文の場合;を必要としない、というか;をつけるとそこで終わってしまったりするのかな?
だからつけないのかしら?
ご飯はしっかり食べないと(`・ω・´)ってさっきどこかで誰かが書いてたw
- 13 :にあ:2011/11/10(木) 12:40:27 ID:UW7xK5YM0
- >>251
いや…
public static void 識別子(){
などのメソッド宣言で順番が関係するのはmainのみ(´・ω・`)
他は呼び出されたら動き始める。
えーとこれはちょい面倒なんだけど
基本データ型(整数型、浮動小数点型、論理型(true,falseのみを返す型)、文字型)があるんだが
(Stringは文字列型だけど、これは参照型に属する)
例えばmainメソッドで2つ目のメソッドを呼びだしたとする(この例の場合、mainともう一つのメソッドのみ存在すると仮定してくれ)
呼び出し方は今やんなくてもいいけどざっと軽く言うと
メソッド名(); で呼び出す。
※この際()に入れるのは呼び出すメソッドに渡したい値などです。ない場合は何も入れなくていいです。
で、呼ばれる方(この場合、2つ目のメソッド)はpublic static void メソッド名(){ なんだけど、
{はそのメソッドの処理開始の合図、呼び出されたメソッド名の後ろの()に書くのは
呼び出す側が ()に値を入れたまま呼び出した時に、 その値を一時的に入れておくための変数を書いておく
public static void〜 のvoid の部分は呼び出されたメソッドが何か計算して値を 呼び出し元に返したい時に
その返したい値(整数の場合は整数型、小数点の場合は浮動小数点型)に応じて変更する。
例えば返す値が 文字列の場合はStringと書き、 浮動小数点型の場合は double(float)と書いたり…
何も返す値がない場合(例えば呼び出したメソッドで処理が終了する場合)はvoidを使用する。
わかりにくいな・・・ごめん。これはまだ先の話だお(´・ω・`)
タブの説明は不要かな?不自然に空いてるところは見やすくするため、うん。ここはみんな同じなのかな?
forやwhileだが{は書かない場合もある。その場合でも; は書かなくていい。
ただし{を書かない場合は
例:for(とりあえず反復回数を3回に設定したとする)
System.out.println("AAA");
System.out.println("BBB");
の場合、最初の一行目のAAA表示のみ3回繰り返されて、BBB表示は一回で終わる。
つまり{を付けない場合、ループは最初の1行のAAA表示限定になり、BBBはループの対象にならない
>>252
いや、なにか目的がない場合、やる気が起きないのは皆同じだお(´・ω・`)
- 14 :にあ:2011/11/10(木) 12:40:56 ID:UW7xK5YM0
- >>253
つまり
これをやります!そのなかでこれが最初です!ってのがmain
mainとそれ以外、との分類?
Stringとかの部分はちとわかりにくい…(´・ω・`)
とりあえず例題の場合、メソッドではStringが返ってくるからStringとかいてあると。
これが数字の場合それぞれにあったFloatとかIntegrateとかになってくる…のかな。
voidの直後にくる()の前の部分…はおいおい教えて貰うとして…(´・ω・`)
ループの終わりはやっぱ終わりなのね…この辺もきっと自分で書いて実際に動かすまでは理解出来てるようで理解出来てない悪寒。
理論としてはなんとなくわかった気がする。ってとこかな?
- 15 :にあ:2011/11/10(木) 12:41:16 ID:UW7xK5YM0
- >>255
うん。mainが始めに実行されて、そのあとに呼び出したメソッドごとに起動する(´・ω・`)
すまぬ・・・速攻で書いたので・・・(´・ω・`)
そうだね、もし整数型(javaではint型)の場合はvoidをintって書く。浮動小数点型の場合はdouble(javaではfloatよりこっちを使う)と書く
forやwhileの場合はfor(while){ }の{ }(ブロック)で囲んだ部分がループ範囲。{ }なしの場合はループは最初の一行のみで
他は通常通りに処理される(´・ω・`)
でもやっぱ動かさないとわからないかも(´・ω・`)?
- 16 :にあ:2011/11/10(木) 12:41:38 ID:UW7xK5YM0
- package exercise;
public class Sample001 {
public static void main(String[] args){
System.out.println("hello");
System.out.println("こんにちは");
System.out.println("ごきげんよう");
}
}
実際はこうだった(´・ω・`)
クラス宣言(3行目のクラス宣言には、空白いらなかった)は四文字ずらさずに普通に書く(´・ω・`)
今までの例題では…
public class Sample001 {
こんな風にずれてた(´・ω・`)
すみませんでした
- 17 :にあ:2011/11/10(木) 12:42:08 ID:UW7xK5YM0
- クラス宣言はそのまま
メソッド宣言はタブ入れる!
ってことだぬ。
- 18 :にあ:2011/11/10(木) 12:42:41 ID:UW7xK5YM0
- >>232、>>248の続き
package exercise;
public class Sample001 {
public static void main(String[] args){
System.out.println("hello");
System.out.println("こんにちは");
System.out.println("ごきげんよう");
}
}
※お詫び
この度はミスしてすみませんでした(´・ω・`)
上の例題ですが、>>232と>>248のと比べても分かるように空白が余分でした。
実際は上のようにクラス宣言はずらしません、本当に申し訳ありませんでした(´;ω;`)!
・ブロック分と「インデント(一部の行は書き出し位置が右にずれてるけど、それのこと)」について
{ }で囲まれてる部分を 「ブロック」 と言います。その中の文を 「ブロック文」 といいまする。
ブロック文はそれまでの開始位置から4文字分右へずらして書き始める。これにより見やすくなります。
クラス宣言(3行目)の後のmainのメソッド宣言(4行目)も{を使用してるため、次からのprintln も4文字ずらして書きます。
逆に } で閉じた場合、4文字戻して書きます。
Eclipseだと勝手に設定してくれるから特に気にしなくてもいいかも…(他のソフトはよくわからない)
・コメント文について
コメント文はrubyにもあると思いますが、プログラムを説明するための文です(´・ω・`)
例えば…
package exercise;
//上はパッケージ文
public class Sample001 {
/*
* ここから下はprintlnの時代
* ゴキブリ(^p^)しーね!しーね!
*/
public static void main(String[] args){
System.out.println("hello");
System.out.println("こんにちは");
System.out.println("ごきげんよう");
}
}
のように書くことができます。
勿論、プログラム実行時には表示されません。
// は//のあとにコメント分を書くことができます(ただしその行のみ、複数行に渡ることはできない)
/*〜*/は複数行にわたって書けるけど、入れ子状態にはできない
このへんはまた説明しまする(´・ω・`)
- 19 :にあ:2011/11/10(木) 12:43:15 ID:UW7xK5YM0
- >>275
なるほど。
コメントが//ね。
//のついた行だけコメント
/*ここから
コメント
だってばよ!*/
ってことで
複数行の場合その間にプログラムのメソッドを入れてはいけないってことかな?
- 20 :にあ:2011/11/10(木) 12:43:34 ID:UW7xK5YM0
- >>279
正確には
/*
*
*
*/
のように一列に書いて・・・
まあオイラは普通に//しか使わないけど・・・(´・ω・`)
- 21 :にあ:2011/11/10(木) 12:43:53 ID:UW7xK5YM0
- >>280
あ、そか
複数行の場合
/*
*ここから
*コメント
*だってばよ!
*/
ってな形になるんですにゅ。
- 22 :にあ:2011/11/10(木) 12:44:16 ID:UW7xK5YM0
- >>232、>>248、>>275の続き
最後にprintln(print)について説明します。
もう例題は書きません(上の長ったらしい例題は)
System.out.println(""); //ここではprintlnで解説します(´・ω・`)
まずSystem.out.の部分ですが…
・・・(´・ω・`)
・・・・・・(´・ω・`)
・・・・・・・・・(#´・ω・`)
はい、次行きます。
上のほうでで質問があったのですが、まず文字列は""で囲みます。""で囲まれた場合は、文字列です。
(文字列=String型)←これは今必要ないけど…
式の優先順位は普通の数式と一緒です
例えば、
System.out.println("owata" + 999 * 999 + "imihu" );
の場合、
掛け算が優先され、
owata998001imihu になります。
(´・ω・`)
これくらいかなぁ・・・
- 23 :にあ:2011/11/10(木) 12:44:40 ID:UW7xK5YM0
- >>283
うん…ここはわかった…と思う。
System.out.printin
つまり
rubyで書くところの
putsね。
System.out.print
が
rubyでいう
print
にあたるわけだぬ。
数学…てか算数については
掛け算、割り算が先。
足し算引き算はあと。
同じ足し算なり掛け算なりが続く場合左から順番。
()があれば()優先。
ですにゅ。
- 24 :にあ:2011/11/10(木) 12:45:11 ID:UW7xK5YM0
- プリントエルエヌ だお
なんとメロのMだけ入ってないwww
- 25 :にあ:2011/11/10(木) 12:45:33 ID:UW7xK5YM0
- println
と全部小文字。
printも小文字。
lnって何の意味なんだろう(´・ω・`)?
- 26 :にあ:2011/11/10(木) 12:45:51 ID:UW7xK5YM0
- >>299
line(行)の略
- 27 :にあ:2011/11/10(木) 12:52:01 ID:UW7xK5YM0
- package exercise;
public class Sample001 {
public static void main(String[] args){
int number;
number = 10;
number = 20;
number =number + 1;
System.out.println(number);
}
}
実行結果:
21
なんとなくコピペした。後悔はしていない(´・ω・`)
- 28 :きあぬーんにゃらばす ◆u9kowtRiWI:2011/11/11(金) 15:23:27 ID:9a5q4VwU0
- package exercise;
public class Sample001 {
public static void main(String[] args){
int number;
number = 10;
number = 20;
number =number + 1;
System.out.println(number);
}
}
※パッケージ宣言(1行目)、クラス宣言(3行目)、mainメソッド宣言(4行目、具体的なプログラム内容開始)です。
・5行目について
int number;
となっていますが、これはint型(整数型)の変数numberを「変数宣言」(これからint型の値をnumberに入れて使用しますよ〜宣言)しています。
※変数名は識別子(プログラマーが自由につけていい名前)です(ただし、一定の制限があります。>>7を参考にしてください)
※変数宣言(例えば5行目の int number; )をした場合、その変数(この場合number)に入れられる値は整数のみです。
int型(整数型)で変数宣言しているので、小数点(浮動小数点型のdouble,floatの値)・文字列(Stringの値)等々を代入するとエラーになります。
小数点や文字列を代入して使用できる変数が欲しい場合、次のように新しく変数宣言する必要があります。
例:double d;(浮動小数点型の値の入れ物(変数)を作成して、これから使います〜)
String str;(文字列の入れ物を作成して、これから使用します)
javaでは「◯型 変数名;」のように変数宣言しないと変数は使用できません。変数宣言せずに 変数名 = 15; とか書いてもエラーになります。
宣言すれば、その型の範囲内(後ほど説明しまする)で、自由に代入して使用することができます。
※numberという変数名がややこしかったかもしれません。すみませんでした。
・6行目について
number = 10; で、numberというint型の変数に整数10を代入しています(というかこれ以外の変数を宣言していないので、これにしか代入できない(´・ω・`))
・7行目について
number = 20; で、numberというint型の変数に整数20を再代入しています(この時点で、numberの中の値が20で上書きされます)。
鳥取さんの仰るとおりで、この例は変数の中身を自由(宣言した型の範囲内で)に変えることができることを示していまする(´・ω・`)
・8行目について
number = number + 1; となっています。
これは変数numberに、今現在numberに入ってる値に+1して再代入しなさい・・・っていう命令です。
7行目の時点で、numberに入ってる値は20ですので、それに+1した値が再代入されnumberの値は21になります。
・9行目について
numberの中の値を出力して改行しています。
・10行目、11行目の}ついては放射能さんの言う通りです。
※変数に代入する具体的な値を「リテラル」と言います。「リテラル」と「具体的な値」、どっちがわかりやすいでしょうか?
「=」は基本、右辺の結果を左辺に代入します。等号の意味はありませんので、注意してください(´・ω・`)
※変数宣言について
同じ名前の変数を宣言することはできません。これは型が同じでも違っても関係ありませぬ(´・ω・`)
変数宣言で型を決めると、同じかたの値しか代入できません(一部例外がありますが、それはまたもう少し先です)。
※変数宣言の書き方
宣言と同時に代入する(これを初期化といいます)
・int n = 10; ←nを宣言すると同時に10を代入しています。
・int m = n + 5; ←式を書いて初期化することも出来ます。上の行でnに10を代入していますので、mの値はn(10)+5で15になります。
複数の変数を同時に宣言することも出来ます。
・int n, m, p;(ただし、int a, String s;のような書き方はエラーになります。型名は文の先頭に1つだけお願いします。ただ、int a; String s;ならおk)
複数の宣言で一部の変数のみ初期化することもできる。
・int n = 10, m, p;(int a =b=0; はエラーになります。宣言では分けて書かなければなりません。int a = 0, b = 0;ならおkです。)
※実行は、Eclipseの場合は右クリック→メニュー→実行か上部分にある実行を選択します。
- 29 :にあ:2011/11/11(金) 16:21:25 ID:qrJkQ.vM0
- >>535
変数に代入する具体的な値を「リテラル」っていうから、代入する文字列とかも「リテラル」でおk(`・ω・´)
変数に代入できる値なら何でもリテラルでおk(だと思う)。
例:153,666 0.593453(浮動小数点型) "owata"(文字列) 'あ'(文字型) true(trueとfalseのみを返す論理型)
:上の例の整数の桁はいつもより多くしました。サービス精神旺盛だべっ^ω^}っ?
※型については次回
変数宣言について
変数は最初に宣言してから、処理(命令文)書くのもよし、所々に書くのもよし・・・
変数を使用する前に、宣言していれば問題ないお(使用したあとで使用した変数を宣言しても駄目でやんす。)
int n;
String s;
nを使ったプログラム本文
sを使ったプログラム本文
でもおkです。
「;」は日本語で言うと「。」と同じです。
int n; String s;では、int n;の「;」の時点で、nの変数宣言の文は終了しました!って事になる。
だからint n; System.out.println(n);のように「;」のすぐ後に命令文書いても続けて変数宣言書いてもおkです。
int n;
String s;
は
int n;String s;を見やすくしただけ。nの宣言の後に改行入れただけなんですお(´・ω・`)
>きちんとひとつひとつの変数の初期化をして、この場合それぞれの区切りは,を使い最後に;をして変数宣言と変数の初期値の終了を告げる。
そんな感じで・・・(´・ω・`)
使っていけばすぐに覚えられますお。複数の変数を宣言する場合は「,」で区切る。最後は「;」で締めくくる。
- 30 :きあぬーんにゃらばす ◆u9kowtRiWI:2011/11/13(日) 15:29:07 ID:9a5q4VwU0
- 整数型について
整数型は扱える数値の大きさによって、long, int, short, byteの4つに分かれます。
・int型
基本、整数はintを使います。
扱える値の範囲は-2.147.483.648〜2.147.483.647(±21億4千万程度)です。
国家予算など更に大きな値を扱う場合はlong型を使用します。
・byte型
-128〜127までの範囲の値しか扱うことができません。
扱える範囲は少ないですが、音の振幅やグラフィックスの色、通信データなどを表すのに
よく使用されます。不定形の特殊なデータを扱うのに向いて(´・ω・`)ます。
・short型
int型が普及してからはあまり使われなくなった型です。正直いらない子。存在価値のない子。ダメな子。
int型の半分のメモリーしか使いませんが、扱える範囲は-32.768〜32.767とかなり小さいです。
今となってはもはや\(^o^)/
・long型
int型では足りないような値(国家予算など)を扱う時に使用します。
扱える範囲は、-9.223.372.036.854.775.808〜9.223.372.036.854.775.807(±922京3000兆程度)までになります。
整数型では特殊な方になっており、私用に制約がかかる場合がある(特定の構文にlongが使えなかったりとか・・・)。
使用するときは、数値の末尾にLまたはlを付けます。付けないとエラーになります。
例) 12334384034809485982L 52074872584758475702l
っ^ω^}っ<intとlongの限界値はしっかり覚えましょうお!
- 31 :きあぬーんにゃらばす ◆u9kowtRiWI:2011/11/18(金) 21:35:15 ID:9a5q4VwU0
- 浮動小数点型について
小数点についてです。実数型とも言われたりしています。
浮動小数点数は、小数点の位置を別途指定するという意味から言われているらしいです。
・double型
float型の2倍の精度(有効桁数)を持つことが出来るからdouble型と言われています。
有効桁数は10進数でいうと約15桁くらいです。
今は基本、double型が使用されています(`・ω・´)。
・float型
short型と同じで、現在は殆ど使われていない可哀想な子です。
使用する時は数値の末尾にFかfを付けます。
例)123.23F 0.0052f
- 32 :きあぬーんにゃらばす ◆u9kowtRiWI:2011/11/19(土) 21:03:06 ID:9a5q4VwU0
- 論理型について
コンピューターはもともと論理を扱う機械で、基礎にあるのは命題の真偽を扱う命題論理です。
ある命題(主張)が正しいか間違ってるかを判断しまする。
正しければtrue(真)、間違っているならfalse(偽)になります。
true・falseをコンピューターのデータ型にしたのが論理型です。
論理型は条件判断などで重要な役割を負います。
・boolean型
論理型は真偽を扱う値ですので、trueとfalseの2つしかありません。
true、falseという表現がひとつの値です。
※例えは後々・・・
- 33 :きあぬーんにゃらばす ◆u9kowtRiWI:2011/11/19(土) 21:53:02 ID:9a5q4VwU0
-
http://www.dotup.org/uploda/www.dotup.org2281248.jpg
何かrubyがかなり進んでるのにこんな初歩的なこと説明してるのって・・・
凄い虚しくなってきた・・・(´;ω;`;)
- 34 :にあ:2011/11/23(水) 13:37:28 ID:6/nNMvBk0
- 【JAVA】勉強部屋×雑談4【ruby】
http://jbbs.livedoor.jp/bbs/read.cgi/internet/12569/1322022926/
■掲示板に戻る■ ■過去ログ倉庫一覧■