ログインしてさらにmixiを楽しもう

コメントを投稿して情報交換!
更新通知を受け取って、最新情報をゲット!

TUT Programing Techniqueコミュの[Java] 後期テスト対策用トピック(構文編)

  • mixiチェック
  • このエントリーをはてなブックマークに追加
こちらには後期テスト対策に関わる事を書いてゆこうかと思います。
質問等も勿論受け付けますので、自分の分る限りのことはお教えします。

コメント(20)

まずは基礎の文法から。

・if

int num = 1;
if( num == 1 ){
  System.out.println("num == 1");
}

の様に使用します。
if( ) の『()』の中が真(true)になる時、『{}』の中の処理に入ります。
真(true)とは何か?と言う方は、本当の事かどうか、というのを考えれば良いです。
使用例の様な場合、
numは1ですから、if( num == 1 )は本当の事なので、真と言えます。
・else if、else

ifと共に用いり、複雑な処理の分岐を作る事が出来ます。

if( num == 1 ){
  System.out.println("num は 1");
}else if( num == 2 ){
  System.out.println("num は 2");
}else{
  System.out.println("num は 1でも2でも無い他の値です");
}

else ifはifと同じく、『()』の中が真ならば『{}』の中の処理に移ります。
elseは if、else ifのどちらの条件にも当てはまらなかった場合にそこに処理が移ります。
・if、else if、elseの補足

else if、elseは省略する事が出来ます。

if( num == 1 ){
  ;
}else{
  ;
}

や、

if( num == 1 ){
  ;
}else if( num == 2 ){
  ;
}

の様に書くことが可能と言う事です。

また、『{}』を省略して書くことも可能です。
ただしそれは『{}』内の処理が一行だけの場合だけです。

if( num == 1 )
  System.out.println("num は 1");
else if( num == 2 )
  System.out.println("num は 2");
else
  System.out.println("num は それ以外");

この様に書くことが出来ます。
・switch

一つの変数に関して分岐を書きたいときにスマートにかけます。
基本的にはifと大差ありません。

switch( num ){
case 1:
  System.out.println("num は 1");
  break;
case 2:
  System.out.println("num は 2");
  break;
}

case ○○:
で始まり、
break;
までがifで言う『{}』に当たります。

ifで言うelseに当たるのは『default』です。


注意点として、
case ○○ の後は『;(セミコロン)』ではなく、『:(コロン)』で、breakの後は『;(セミコロン)』だという事にだけ注意すれば大丈夫かと思います。
・for

forはループを繰り返す際によく使用されます。


for( int i = 0; i < 10; i++ ){
  System.out.println( "iは"+ i );
}

forの構造は
for( ループで使用する変数カウンタ宣言; 条件式; 継続処理 )
という形になっています。
条件式が真の時、ループを続け、そうでなくなった際にループから脱出します。
・forの補足

変数の宣言、条件式、継続処理は全て省略する事が出来ます。
全てを省略する事は殆ど無いんですが、カウンタの宣言を外でやる事はたまにあります

int i = 0;
for( ; i < 10; i++ ){
  ;
}

ifと同じく、ブロック内({}の中)が一行だけの処理なら『{}』を省略する事が出来ます。

for( int i = 0; i < 10; i++ )
  System.out.println("Hello Java");
・forの補足2

恐らくテストにこんな問題が出ます。

for( int i = 0; i < 10; i++ ){
  for( int j = 0; j < 10; j++ ){
    System.out.println("Hello");
  }
}

Helloは何回表示されるか答えなさい。


こんなに単純かは分りませんが、これに似た問題が出る様な事を言っていた気がします。
ヒントとしては外側が一回回る間に内側は10回回る(0,1,2,3,4,...9)、と言うことです。
算数が出来れば出来ると思いますが、考え方は覚えておいて損は無いはずです。
・while

int num = 0;
while( num < 10 ){
  System.out.println("Hello");
  num++;
}

『()』の中が真の間、ループを繰り返します。
例の様にnumを変えていかないと無限ループに入りますので注意。

・do while

int num = 0;
do{
  System.out.println("Hello");
  num++;
}while( num < 10 );

普通のwhileと似ていますが、違う点は「絶対に一度は処理が入る」という点です。

while( num > 10 )でnumが1などの場合、処理は入りませんが、
do{
  ;
}while( num > 10 );
の場合はnumがいくつでも一度は{}の中の処理に移ります。
while( ... )の後のセミコロンを忘れないように注意。
>うっちー
合ってるよー。
そのイキなら行ける行ける( ^ω^)
後期でfor文のテスト出るの!?Σ(゚ロ゚;)
だったら前期から勉強しないと・・・(((( ;゚д゚))))アワワワワ
>はっせー
出るらしいよー!
りょっちにも聞いたんだけど出るって言ってたしw
今年度はあまり出来はがよくないらしいから今期からちょっと簡単にするために前期の範囲も含むんだってさ。
二年のプロ技で扱うC言語もJavaで覚えた事が基礎になるから、前期の範囲はちゃんと理解しておいたほうがいいと思うよー。
まじかっ!!!!
前期の範囲くるならいけそう!(`・ω・´)シャキーン
なんとか落ちませんように(*-ω人)
7の問題ってiもjもSystem.outの文に=とかされてないのになんでHELLOが続くの??
>しゃーご
System.out.println っていうのは、コマンドプロンプトの画面に『()』内の文字列(または変数)を出力(表示)させるって言う命令だから、
System.out.println("fuck all the people");
って打てば直ぐに表示されるんだ。

んで、forの文が二重に重なってて、外側のforが一回回るには、内側のforが10回回って処理が終わらないと行けないのね。
内側のforの動作の流れは、
jは0→j<10なので処理に入る→System.out.println("Hello");を実行する→forの最後まで来た→j++する→jは1→j<10なので処理に入る→.....
→jは9→j<10では無いので処理終了→i++→iは1→i<10なので処理に入る→jは0(また新しく始まる)→j<10なので処理に入る

この繰り返しが行われるから、Helloは何回も表示されるってわけです。
forの{}をくくったなかの処理を条件がととのうまで繰り返すっていみだから=とかはいらないのですよ

だから{}でくくったSystem..が100回も表示されるわけです。

肝心なのは{}でくくってる中身ってことですね





説明へたでごめん;
わからなかったらスマン;
ミスった
→jは9→j<10では無いので処理終了
は
→jは10→j<10では無いので処理終了

の間違いです。
わかったかも!!!!!
forでくくられてたら、どんな内容の文でも繰り返されるってことね♪
oh

わかってもらえてよかった(´∀`*)


あと条件をみたしてる間だったね(´・ω・`)
スンマセン(´・ω・`)

ログインすると、残り1件のコメントが見れるよ

mixiユーザー
ログインしてコメントしよう!

TUT Programing Technique 更新情報

TUT Programing Techniqueのメンバーはこんなコミュニティにも参加しています

星印の数は、共通して参加しているメンバーが多いほど増えます。