就職・転職の時に健康診断を求められたら? [就活・転職]
企業側には雇用者に健康診断を受けさせる義務があります。
通常、採用が決まって、入社後に企業負担で健康診断を受けに行くことになりますが、中には入社前や、面接の段階で求められる場合もあります。かくいう私は履歴書などと一緒に提出を求めらていて、慌てて調べました。
以下のような疑問をお持ちの方が多いと思います。
- 健康診断といっても項目は何を受ければいいの?
- どこで受ければいいの?
- どこで受けたら安いの?費用はどれくらい?
- 受診後、診断書発行までどれくらいの時間がかかるの?
一つずつ答えていきましょう。
1.健康診断といっても項目は何を受ければいいの?
まず、健康診断といってもさまざまな種類があります。定期健康診断や癌検診など受ける病院・施設によっても微妙に項目が異なります。ただし、就職・転職の際に求められる健康診断はどこで受けても項目は同じです。というのも、労働安全衛生規則43条で企業が労働者を雇う場合に必要となる健康診断項目が定められているからです。そのため、病院・施設で健康診断を受ける場合、「雇入時健康診断」を受けていればまず問題ないでしょう。
雇入時健康診断の項目は全11項目からなります。
- 既往歴及び業務歴の調査
- 自覚症状及び他覚症状の有無の検査
- 身長、体重、視力及び聴力の検査
- 胸部エックス線検査
- 血圧の測定
- 貧血検査
- 肝機能検査(GOT,GPI,γ-GTP)
- 血中脂質検査(血清総コレステロール、HDLコレステロール、血清トリグリセライド)
- 血糖検査
- 尿中の糖及び蛋白の有無の検査
- 心電図検査
2.どこで受ければいいの?
病院・保健所・(健康診断を行っている)施設等で受けられます。
ただし、保健所の場合は年齢などによる制限がある場合があります。
読者の方が学生さんである場合、学校で受けるという選択肢もあります。
3.どこで受けたら安いの? 費用はどれくらい?
おおむね、学校<保健所<各種施設 <病院、の順に高くなっているようです。
「雇入時健診 お住まいの市区町村名」で検索するとたいてい記載されています。
保健所や各種施設では5000~8000、病院だと1万円程度といった感じでしょう。
4.受診後、診断書発行までどれくらいの時間がかかるの?
即日発行の場合もあれば、最長で1ヶ月程度かかる場合もあるそうです。これに関しては事前に問い合わせておくのがよいでしょう。
【報告】ブログ更新、小休止をいただいておりました。 [Java]
更新が滞っておりました。
一つ目に応募した企業からは履歴書・職務経歴書を求められ、提出しましたが、書類審査通過ならずでした。
就職活動しつつも、自分の能力を高めるために、2つの資格習得を目指し始めました。
Java SE 7/8 Bronze
ITパスポート
です。これらは、IT業界に務めている人からしたら「それが何?」レベルのものだと思いますが、私のような初心者にとっては、基本知識を徹底するにはもってこいだと思います。
これらの勉強記録もここに記していけたらなあと思います。
自分の価値観・考え方を整理するために、やや哲学的(?)な記事もこれから増えてくると思います。
タイトルとカテゴリーを見て興味がなさそうならスルーしていただけると幸いです。
実務経験無しの既卒がSE・PGとして就職するには? [プログラミング全般]
専門性の高いSE(システムエンジニア)やPG(プログラマー)ですが、実務経験無しの既卒が就職するにはどうしたら良いでしょうか?
これから就活を始めるので、面接ではどのようなことを聞かれるのかや、人事の方と話してみて、どのようなことが必要になりそうか、逐一報告していこうとおもいます。
メソッドを使うとなぜ開発効率が高まるのか? [Java]
前回、引数の受け渡しについて説明しました。
今回は、「メソッドを使うことでなぜ開発効率が高まるのか?」をサンプルコードを通して説明していきます。
まずは下のコードを見てください。
public class Main{
public static void main(String[] args){
System.out.println("一郎、こんにちは");
System.out.println("二郎、こんにちは");
System.out.println("三郎、こんにちは");
}
}
実行結果
一郎、こんにちは
二郎、こんにちは
三郎、こんにちは
コードに重複がありますね。
このような場合にはメソッドを使うとスッキリします。
今回は画面に「◯◯、こんにちは」と表示するというのが共通しているので、ここをメソッドにして切り出します。
以下のようなコードになりました。
public class Main{
public static void main(String[] args){
hello("一郎");
hello("二郎");
hello("三郎");
}
public static void hello(String name){
System.out.println(name+"、こんにちは");
}
}
こうすることで、コードがスッキリしましたし、何より、見通しがよくなりました。
mainメソッドのメソッドブロック({}内)では、helloメソッドに一郎、二郎、三郎の三つを引数として渡し、呼び出すというだけです。
コードをパッと見て、意味がわかりやすいですね。
また、javaにはAPIと呼ばれるあらかじめ用意されたメソッドがあります。
つまり、自分でメソッドを作らなくとも、APIを調べ、それを利用することで開発効率を高めることができます。
APIについてはまた別記事にて説明します。
今回は引数として1つを受け渡しましたが、複数を引き渡しこともできます。
次回は、引数に名前と挨拶の2つを指定し受け渡してみましょう。
引数を渡す [Java]
前回は引数のイメージについて説明しました。
今回は、実際にメソッド間で引数の受け渡しを行います。
下のコードをみてください。
public class Main{
public static void main(String[] args){
hello("太郎");
}
public static void hello(String name){
System..out.println(name+"、こんにちは");
}
}
mainメソッドとhelloメソッドの2つのメソッドがあり、string型の引数、太郎の受け渡しを行っています。
mainメソッドからhelloメソッドに太郎を渡し、helloメソッドでは受け取った太郎を使って、「太郎、こんにちは」と画面に表示させています。
mainメソッドで、そのhelloメソッドを呼び出しているので、実行結果は以下のようになります。
実行結果
太郎、こんにちは
前記事(→ http://weekly-programmer.blog.so-net.ne.jp/2015-08-14-1 )
で、料理を例に説明しましたが、mainメソッドがあなた、helloメソッドがパートナー、太郎(引数)が食材です。
あなたがパートナーに食材を渡し、調理され出来上がったものをあなたが受け取ります。
mainメソッドがhelloメソッドに引数(太郎)を渡し、helloメソッド内で処理されたものをmainメソッドが受け取るということですね。
今回は引数に太郎を入れてみましたが、ここに二郎、三郎といれるだけで画面上に「◯◯、こんにちは」と表示させることができます。
次回は、いろいろな引数をいれて説明します。
引数のイメージをつかもう [Java]
前回はメソッドの呼び出し方について説明しました。
メソッド名(引数)
で呼び出せるのでしたね。
その中で引数という言葉が出てきました。
今回は、この引数について説明します。
今回はプログラミングではなく、日常生活に置き換えて、引数のイメージをつかんでいきましょう。
まずは、以下の2つのパターンを見てください。
①ご飯を自分で作る
食材を用意し、台所で料理し、完成したものを食べます。
②ご飯をパートナーに作ってもらう
食材を用意し、それをパートナーに渡し、料理してもらいます。完成したものはあなたが食べます。
①のパターンの場合は、自分でご飯を作り、自分で食べるので、全て自分の中で完結しています。
対照的に②のパターンの場合は、食材をパートナーに渡し、完成したものを自分で食べているので双方向のやり取りをしています。
あなたとパートナー間で食材の受け渡しを行っているのです。
引数とはまさにこの食材のことなのです。
食材を渡し、それに何らかの処理を加えて出来たものを受け取る。
プログラミングにおいては、引数を渡し、それに何らかの処理を加えて、形が変化したものを呼び出し元で受け取るということになります。
次回は、実際にプログラミングにおいて、引数をどのように受け渡しているのか、サンプルコードを例に説明していきます。
メソッドの呼び出し [Java]
前回はメソッドとは何なのかについて説明しました。
今回はメソッドの呼び出し方について説明します。
メソッドの呼び出し方はとても簡単で、
メソッド名(引数)
です。
例えば、
public static void methodA()
というメソッドがあり、これを呼び出す場合は、
methodA()と呼び出せば良いわけです。
簡単ですね。
次回は、引数について説明していきます。
メソッドの定義 [Java]
前回、メソッドとは何かについて説明しました。
今回は、メソッドの定義について説明します。
メソッドの基本形は以下のようになっています。
public static 戻り値の型 メソッド名(引数リスト){
具体的な処理
}
戻り値や引数などの単語が出てきましたが、これらについてはまた別の回で詳しく説明します。
最もなじみのあるメソッドとしては
public static void main(String[] args){
}
がありますね。
これはメインメソッドと呼ばれていて、メソッドの中でも少し特殊です。
言うならば、メソッドを束ねる役割をする、司令官のようなものです。
mainメソッドから他のメソッドに指令を出すことでプログラムが動きます。
次回は、実際にメインメソッドから他のメソッドを呼び出す方法について説明します。
メソッドとは? [Java]
前回まで配列について説明してきました。
今回はメソッドについて説明します。
個人的に、このメソッドを理解できるかどうかがかなり鍵になっています。
まず、メソッドとは何なのかについて説明します。
メソッドとは簡単にいうと、一つの処理をまとめたものです。
コードが長くなるにつれて、全体を把握することが難しくなります。
そこで、メソッドというまとまりをコードから切り出すことで、見通しをよくするということです。
コードはこのメソッドの集まりであるといっても良いかもしれません。
画面に文字を表示するメソッドなど、さまざまなものが考えられますね。
プログラムは、さまざまなメソッドを利用し、時には自分でメソッドを作りながら書いていきます。
次回は、このメソッドの基本形について説明します。
多次元の配列 [Java]
前回は、文字列の長さを得る方法について説明しました。
今回は多次元の配列について説明します。
小学校の集会を例にすると、
通常の配列が、1年1組という組というまとまりに対して一斉に指示を出すように捉えるのに対して、
多次元の配列は、 1年1、2、3、4、5組というように、組をさらに束ねて学年に指示を出すイメージです。
使う機会はなかなか少ないと思いますが、説明しておきます。
基本的には通常の配列とほぼ同じ使い方をします。
比較してみましょう。
(通常)
配列の宣言
要素の型[] 配列変数名=new 要素の型[要素数];
または、
要素の型[] 配列変数名=new 要素の型{要素を列挙};
または、
要素の型[] 配列変数名={要素を列挙};
要素の利用
配列変数名[添え字]
(多次元の配列)
配列の宣言
要素の型[][] 配列変数名=new 要素の型[要素数][要素数] ;
または、
要素の型[][] 配列変数名=new 要素の型{{要素を列挙},{要素を列挙}};
または、
要素の型[][] 配列変数名={{要素を列挙},{要素を列挙}};
要素の利用
配列変数名[添え字] [添え字]
ほとんど同じですね。通常の配列が組単位という「列」だけであると考えるなら、多次元配列は「列」と「行」といったところでしょうか。
その分、[]や{}が一つ増えていることになります。
次回はいよいよメソッドについて説明していきます。
文字列の長さを得る方法 [Java]
前回は配列の拡張for文について説明しました。
その中で、配列の要素数を得る方法を説明しました。
配列変数名.length
ですね。
今回は文字列の長さを得る方法について説明します。
文字列変数名.length()
です。
()が付くかどうかの違いです。
例えば、String型の変数hiraganaに、あいうえお、と代入した場合、 hiragana.length()は5となります。
次回は多次元の配列について説明します。
拡張for文 [Java]
配列の要素数を得る方法 [Java]
前回は配列の作り方と、指定した番号の配列を取り出す方法について説明しました。
今回は、さらに配列をどのように使っていくか説明していきたいと思います。
まず、配列の要素数を得る方法について説明します。
配列は同質なものをグループとしてとらえる方法でした。
そのグループを構成する要素の数は、次の式で得ることができます。
配列変数名.length
例えば、前回、点数を一つのまとまりとして配列でとらえることについて説明しましたが、これを画面に表示させる際に、この式が使えます。
public class Main{
public static void main(String[] args){
int[] score={40,50,60};
for(int i=0 ; i<score.length ; i++){
System.out.println(score[i]);
}
}
}
int型の配列scoreの要素に40、50、60を代入しました。
そして、for文でループさせることにより、添え字([]の中のi)が0→1→2と増えていきます。
iがscore.lengthに達したところで終了になるのがポイントです。
仮に、配列の要素数が増えたとしても、変更するのはint[] score={40,50,60};の{}の中だけで済みます。
for文についてわからない場合は、下記を参考にしてみてください。
・繰り返しのプログラム その4→( http://weekly-programmer.blog.so-net.ne.jp/2015-07-29 )
・繰り返しのプログラム その5→( http://weekly-programmer.blog.so-net.ne.jp/2015-07-30-1 )
・繰り返しのプログラム その6→( http://weekly-programmer.blog.so-net.ne.jp/2015-07-31 )
・繰り返しのプログラム その7→( http://weekly-programmer.blog.so-net.ne.jp/2015-08-02 )
次回は今回のサンプルプログラムを別の形で書く方法について説明します。
ストレスフリーでプログラミングを学習する方法 [プログラミング全般]
プログラミングと聞くと「難しそう」とアレルギー反応を起こしてしまう人が多いと思います。
さらに、実際にプログラミングの勉強を始めたはいいけど、難しくてつまずいてしまったという経験を持っている人も多いと思います。
どうせプログラミングを学ぶなら、それがまるで苦行であるのかのように耐えながら学ぶよりも、楽しく学びたいですよね。(実際、プログラミング、楽しいですし・・・)
私はプログラミングを勉強し初めて1ヶ月とちょっとというまだまだ初心者の段階ですが、プログラミングの勉強に対してストレスをあまり感じたことがありません。
それは、頭がいいとか、プログラミングのセンスがあるという理由では全くなくて、うまくストレスを避けながら勉強してきたからだと思います。
今日は、どのようにストレスを避けながらプログラミングを勉強していけば良いのかについて書いていきます。
基礎・基本を必要以上に難しく学ぼうとしている病
まず私が感じたのは、プログラミングの基礎・基本はそこまで難しくはないということです。
覚えるべき文法や決まりごとは、同じ言語という観点で考えれば英語なんかよりも少ないですし、単純です。
しかし、基礎・基本でつまづいてしまう人が多いのも事実です。
それはなぜでしょうか?
おそらく、難しい言葉で学ぼうとしすぎているからです。
「プログラミングの基礎を徹底的に抜け・モレなく学びたい」 と思って、ついつい難しい専門書や、初心者を対象としていないウェブサービスを使いがちです。
しかし、これははっきり言って効率が悪いです。
IT系の予備知識を持っているならまだしも、そうでない場合は、専門用語を調べながら学ぶ、といった思考のプロセスが余分に入ってくるのです。
たしかに専門用語を学ぶというのは必要なことですが、「〜しながら」といった勉強をしていると、難しく感じてしまい、挫折のきっかけになります。専門用語は、プログラミングの基礎を学び終え、本当に自分にとって必要だと感じた段階で学べば、ストレスなく学べると思います。
ですから、初学者はなるべく専門用語が少なく、図表やイラストが多く挿入されていて、平易な日本語で書かれたものを学習の基盤とするのが良いと思います。
基礎を学び終えたら何かを作るべきだという考え方
これに関しては完全に否定しません。ただし、強烈に、「何かを作りたい」という思いを持っていない限りは、この考え方も一つのストレスになりうるのだと思います。
実際、基礎を学び終えたあとに、試行錯誤しながら何かを作ろうと考えた場合、失敗することが多いです。(ここでいう基礎とは、Javaの入門書を一冊読み終えたレベル)
聞いたらすぐ疑問に答えてくれる人がいる場合は、成果物をいきなり作ろうとするという選択は良いと思いますが、そうでない場合は、基礎を学び終えたあと、さらに作ろうとしているものに要求される知識も事前に勉強しておくとストレスを減らせると思います。
同時進行でやっていくのも一つの手だと思います。
入門書を学び終えた後にオススメのウェブサイト
JavaDrive( http://www.javadrive.jp/ )
Javaでゲームを作りますが何か?( http://aidiary.hatenablog.com/entry/20040918/1251373370 )
上記二つのサイトは非常におすすめです。
「Javaでゲームを作りますが何か?」 には実際に何か成果物を作っていくときの過程が記されています。ただし、このサイトは入門書を一冊読み終えた程度では若干難しく感じます。
そこで、「JavaDrive」でわからないコードがでてきたときにその都度調べながら勉強するのがオススメです。
特に、入門書の内容は文法に特化しているため、コマンドラインでのプログラムにしかどうしても対応しきれません。
コマンドラインのプログラムから GUIアプリケーションに移行する上で、上記の2サイトは非常に有益であると感じました。
ちなみに、teratail( https://teratail.com/ )というサイトは質問掲示板サイトの中でも、優れた回答者が多く、利用者数も多いのでオススメです。
私も1度だけ利用しましたが、親切な方が多く、相互にやり取りができる仕組みが整っているので非常に利用しやすいです。さらにレベルが上がって、本格的に成果物を作る段階になったら使っていこうと思います。
配列に数値を代入・取り出し [Java]
前回、配列の作り方について説明しました。
今日は配列を利用する方法について説明します。
配列を利用するというのは、配列を人が一列に並んだ状態であると考えると、①前から2番目の人は70点です(=配列に数値を代入する)、②前から3番目の人は何点ですか?(=数値を取り出す)、ということです。
①数値を代入する
数値を代入するときは、
score[1] = 70;
と表現します。注意するのは[]の中の数字は0から始まります。前から2番目の場合は1です。
②数値を取り出す
数値を取り出す時は、
score[2];
と表現します。
次回は配列の使用方法についてもう少し説明します。
配列を使って、データをまとめよう [Java]
前回、配列を使うことで、一斉に指示を出すことができるようになるため、コードの重複が減り、見通しが良くなるということについて説明しました。
今回は実際に配列を使うにはどうしたらよいかについて説明します。
配列を使うためには、変数aをint型であると宣言するのと同じように、①データ型、②変数名を宣言しなければなりません。
→int[] score;
さらに、用意した変数に要素を代入します。今回は5つの要素を代入しています。
→score = new int[5];
これらを同時に宣言することもできます。
→int[] score = new int[5];
また、それぞれの要素が何なのかを表す方法もあります。
→int[] score = new int[]{70,80,40,20,60};
または
→int[] score = {70,80,40,20,60};
このようにして配列を作り出すことができます。
次回は、このようにして作り出した配列のそれぞれの要素を出し入れする方法について説明します。
配列を使うメリットとは? [Java]
プログラミングにおいて配列とは、同じ性質を持ったデータをひとまとまりのものとして捉える方法のことです。
例えば、得点を管理するプログラムがあったとします。(以下参照)
public class Main{
public static void main(String[] args){
int japanese =70;
int math =80;
int english =90;
・・・
合計点を出したり、平均点を出したり・・・といった操作をする時に、配列を使うことにより、japaneseやmathといいたそれぞれの教科をひとまとまりのものとして扱うことができるため、ソースの重複を避けることができるのです。
例えば、小学校を例にしましょう。
1クラス30人で1学年に4クラス、6学年あります。
学校の先生は集会の時には、クラスというまとまりを従えて(指示を出して)います。
これがもし、クラスというまとまりがなかった場合にはどうなるでしょうか?
一人ひとりに指示を出さなければなりません。
「たけしくんは一番端の先頭に並んで、その後ろに太郎くんが並んで・・・」
というように途方もない作業をしなければなりません。
しかし、あらかじめ、クラスというまとまった集団を作っておくことで、
「1組は右端に整列してください」
というように一つの指示を出すことで事足りるのです。
配列とはまさにそういうことで、個別に出していた指示を、集団に出すために作り出したまとまりのことなのです。
例にあげた得点のプログラムの場合、国語の得点、数学の得点・・・をまとめて得点という箱に入れてしまおうという考え方なのです。
次回は実際に配列を用いるためにはどうすればよいのかについて説明していきます。
繰り返しのプログラム その7 [Java]
前回、ネストについて説明しました。
前回挙げた例はforによる繰り返し文の中にifによる条件分岐の文が入っている多重構造でした。
今回はforをネストさせて掛け算の九九を表示したいと思います。
public class Main{
public static void main (String [] args){
for (int i=1 ; i<10 ; i++){
for(int j=1 ; j<10 ; j++){
System.out.print(i * j);
System.out.print(" ");
}
System.out.println("");
}
}
}
表示結果
1 2 3 4 5 6 7 8 9
2 4 6 8 10 12 14 16 18
…
落ち着いて見ていきましょう。
iとjは1から9まで増加します。
iはjのループが終了したら1増加するという構造になっています。
つまりiが1のとき、jが1〜9まで1ずつ増加し、その後iが2に増加し、再びjが1〜9まで増加・・・というのを繰り返す構造です。
ちなみに、System.out.print( )は改行を伴いません。したがって(" ")とすることで、単純に空白(スペース)を表すことになります。
System.out.println( )は改行を伴うため、("")とすることで、単純に改行を表します。
以上で、繰り返しの説明を終了します。
これまで、①順次、②分岐、③繰り返しのそれぞれについて説明してきました。
これら3つを使いこなせればどんな構造のプログラムも書けることになります。
次回からは配列という仕組みについて説明していきます。
プログラミングを難しくする要因 [プログラミング全般]
API(ライブラリ)が膨大であることである。
文法自体はさほど難しいと感じない。
言語という観点でいうと英語の方が難しいように感じる。
ただ、APIという関数が難しい。
エクセルでもsumやifなどの関数を使うが、プログラミングは関数のオンパレード。
膨大な数の関数を適切に使用し、数値の受け渡しをする。
まだ、末端にしか触れていないが、果てしないように思える。
プログラミングを本気でできるようになろうと思ったら、試行錯誤しながら自分のアイデアを形にしたり、とにかく成果物を作らなければならないと感じる。
さらに、自分ひとりでできるということよりも、チームで意思疎通しながら大規模なものを作り上げるとなると相当な労力であるだろう。
基礎の基礎は詰め込もうと思えば数週間で十分であると思う。センスのある人なら数日でできてしまうかもしれない。
そこから、さらにワンステップ上にいくために重要なのは、果てしない世界を歩き続ける根気強さであると思う。
そして、その根気強さは単なる根性ではなく、プログラミングを通して自分が叶えたい夢や目標に付随したものであるべきであると思う。
何のためにプログラミングを学ぶのか?
この問いはどんな時も忘れないようにしたい。
繰り返しのプログラム その6 [Java]
前回はforの()内を変化させるとどうなるのかについて説明しました。
今回はネストと呼ばれるものについて説明します。
ネストは入れ子とも呼ばれています。繰り返しの中に、さらに繰り返しがあるような、多重構造のことをネストといいます。
日本語で例をあげます。
画面に0から1ずつ5まで数字を増やし表示します。ただし、3の時だけ飛ばします。
12
4
5
のようなプログラムですね。
これは以下のようなコードです。
public class Main{
public static void main(String[] args){
for(int i=1 ; i<5 ; i++){
if(i==3){
continue;
}
System.out.print.ln(i);
}
}
}
for文の中にif文が入っています。このような多重構造をネストといいます。
continueは、その周だけを飛ばすという意味です。
次回は掛け算の九九を画面上に表示させてみましょう。
繰り返しのプログラム その5 [Java]
前回はfor文の基本亭な構造について説明しました。
簡単におさらいします。
for(int i=0 ; i<10 ; i++)
int i=0 これは、初期化処理と呼ばれています。iが0から始まるということを表しています。
i<10 これは、条件式です。
i++ これは、繰り返し処理です。 繰り返すごとに行われることです。
今回はこれらを変化させるとプログラムがどうなるかを説明していきます。
public class Main{
public static void main(String[] args){
for(int i=0 ; i<10 ; i++){
System.out.println("こんにちは");
}
}
}
これは画面上に「こんにちは」と10回表示するプログラムでした。
forの()内をさまざまに変化させるとどうなるか、いくつか例をあげていきましょう。
for(int i=0 ; i<5 ; i++)
5回繰り返します。
for(int i=1 ; i<10 ; i++)
初期化処理が0でなく1なので、9回繰り返します。
for(int i=0 ; i<10 ; i+=2)
繰り返し処理はi+=2なので、iが2ずつ増える。よって、5回繰り返します。
for(int i=10 ; i>0 ; i--)
初期化処理がint i=10、条件式がi>0、繰り返し処理がi--なので、10から0まで1ずつ減らしていく。よって、10回繰り返します。
次回はさらに別パターンについて説明していきます。
繰り返しのプログラム その4 [Java]
前回まで、while文、do-while文を使った繰り返しのプログラムについて説明しました。
今回はforを使った繰り返し文について説明します。
forは「〜回」といった意味です。
while文では条件を満たしている間、繰り返されるので、回数を明示することはありませんでした。
しかし、今回説明するforは回数を指定します。
つまり、for文は〜回繰り返すという文です。
それでは実際にサンプルコードを見ていきましょう。
public class Main{
public static void main(String[] args){
for(int i=0 ; i<10 ; i++){
System.out.println("こんにちは");
}
}
}
これは画面上に「こんにちは」と10回表示させるプログラムです。
for(int i=0 ; i<10 ; i++)
を分解して、
- int i=0
- i<10
- i++
のそれぞれについて説明していきます。
1)int i=0
これは初期化処理と呼ばれています。
繰り返しのことをループと呼びますが、そのループが始まる時に最初に実行される文です。
今回の場合、最初にint型の変数iに0を代入して初期化しています。ちなみに、この変数iのことをループ変数と呼びます。
わかりやすくいうと、0から始まるということです。
2)i<10
これは繰り返し条件を表します。
ifやwhileの時に出てきた条件式のようなものだと思ってもらえれば良いです。
i<10を満たしている間、繰り返されるということです。
3)i++
これは繰り返し時処理を表しています。
繰り返された時に実行されます。
今回のサンプルコードの例の場合、画面にこんにちはと表示させた後、iに1を足します。
結局、1、2、3をまとめると、
1)で繰り返しの最初の数字を指定し、繰り返される度に
3)の処理を行ない、
2)の条件が満たされなくなったらfor文を抜け出します。
サンプルコードでは、
0から始まり、画面にこんにちはと表示させる度に1を足し(0→1→2→・・・)、i<10つまりiが10になった時点でfor文を抜け出します。
次回説明する部分はさらに発展的な内容になるのでここできちんと理解できるよう、さらに詳しく説明します。
i=0
→こんにちは
→iに1を足す。i=1
→こんにちは
→iに1を足す(以下省略)。i=2
→こんにちは
→i=3
→こんにちは
→i=4
→こんにちは
→i=5
→こんにちは
→i=6
→こんにちは
→i=7
→こんにちは
→i=8
→こんにちは
→i=9
→こんにちは
→i=10
ここで、i<10を満たさなくなったので、for文を抜けます。
結局、基本形である
for(int i=0 ; i<10 ; i++)
の10の部分を5にすれば5回繰り返すことになり、100にすれば100回繰り返すことになります。
次回は「int i=o」や「i++」の部分に違ったものを入れてらどうなるのかについて説明していきます。
アウトプットを前提としたインプットで理解の質は高まる。(プログラミングを学び始めて一ヶ月でぶつかる課題) [Java]
繰り返しのプログラム その3 [Java]
前回、whileについて説明しました。
基本形は、
while(条件式){実行内容
}
でした。
条件式を満たしている間、 実行内容を実行し続けます。
今回も前回とほとんど同じです。今回はdo-while文です。
普通のwhile文と比べて、do-while文が異なっているのは、必ず最低一回は実行するということです。
基本形は、
do{実行内容
}while(条件式);
です。
プログラムは上から順に実行されていきます。
普通のwhile文は条件式を評価してから実行します。
それに対して、do-while文は上に実行内容がきているので、実行してから条件式を評価します。つまり、必ず一回は実行されるのです。
次回はforを用いた繰り返しについて説明します。
繰り返しのプログラム その2 [Java]
今回は繰り返しのwhileについて説明していきます。
whileには英語で「〜している間」という意味があり、 プログラミングにおいては条件を満たしている間実行し続けるのでしたね。
それでは下のサンプルコードを見てください。
public class Main{
public static void main(String[] args){
System.out.println("温度が1度ずつ上がります。何度まで耐えられるかな?");
int temp=30;
while(temp=<40){
System.out.println("ただいまの温度は" + temp + "度です。");
temp++;
}
System.out.println("暑いですね〜");
}
}
実行結果
温度が1度ずつ上がります。何度まで耐えられるかな?ただいまの温度は30度です。
ただいまの温度は31度です。
ただいまの温度は32度です。
ただいまの温度は33度です。
ただいまの温度は34度です。
ただいまの温度は35度です。
ただいまの温度は36度です。
ただいまの温度は37度です。
ただいまの温度は38度です。
ただいまの温度は39度です。
ただいまの温度は40度です。
暑いですね〜
System.out.println()はおなじみですね。画面に文字を表示します。
今回説明するのは
int temp=30;while(temp=<40){
System.out.println("ただいまの温度は" + temp + "度です。");
temp++;
}
の部分。
int型の変数tempに30を代入して初期化します。
そしてwhile文に突入するわけですが、if文と構造は非常に似ています。
if文は、
if(条件式){実行内容
}
でしたね。実はwhile文を同じで、
while(条件式){実行内容
}
なのです。
意味は、「「条件式」を満たしている間、「実行内容」を実行し続ける」です。
これにあてはめると、
「temp=>40」を満たしている間、System.out.println("ただいまの温度は" + temp + "度です。");
temp++;
を実行し続ける
となります。
つまり、tempが40未満である間は、画面に「ただいまの温度は30度です。」 と表示し、温度を1ずつ増やし続けるということです。
tempが40に達した時点でwhile文のブロックを抜け出します。
次回は、do-while文というwhile文から派生した繰り返しの文について説明していきます。
繰り返しのプログラム その1 [Java]
前回まで分岐のプログラムについて説明してきました。
そもそもプログラムは
- 順次
- 分岐
- 繰り返し
の3つで構成されているのでしたね。( http://weekly-programmer.blog.so-net.ne.jp/2015-7-13 )
それぞれの大まかなイメージは、
①順次→順次→順次→
②分岐→分岐→→分岐→
→分岐→
③繰り返し→↓ →↑←←←←←
です。
今回から5回ほどかけて「繰り返し」のプログラムについて説明していきます。
「分岐」のときはifとswitchの2種類がありました。
「繰り返し」も同様に2種類あります。
それが、whileとforです。どちらも馴染みのある英単語ですね。
whileは「〜している間」といった意味です。
例)While you are cooking,~ (あなたが料理をしている間、〜)
forは英語では回数を表したりしますね。
例)I've been to Japan for three times.(私は3回、日本に行ったことがあります。)
英語の意味とプログラミングにおけるwhileとforの意味をリンクさせて覚えておくと良いと思います。
プログラミングにおいてwhileは条件を満たしている間、繰り返し実行します。
ifは指定された回数、繰り返します。
次回はwhileについて説明していきます。
分岐のプログラム まとめ② [Java]
今回は分岐のプログラムの総まとめをしたいと思います。
分岐のif
分岐のプログラムは基本的にifを使うのでしたね。
基本形は
if(条件式){実行内容①
}else{
実行内容②
}
でした。三つ以上に分岐させたいなら
else if(条件式){実行内容
}
を増やせばいいのでした。
例えば四つに分岐させる場合は
if(条件式①){実行内容①
}else if(条件式②){
実行内容②
}else if(条件式③){
実行内容③
}else{
実行内容④
}
です。
ifの条件式()の中に入る演算子は特に関係演算子と呼ばれ、整数が等しいかどうか調べるときは「==」、文字列が等しいかどうか調べるときは「equals」を使うのでしたね。
分岐のswitch
ifの分岐が増えれば増えるほど、switchによる条件分岐を利用するのが便利になるのでした。
基本形は、
switch(変数名){case1:
実行内容①;
break;
case2:
実行内容②;
break;
case3:
実行内容③;
break;
default:
実行内容④;
}
です。
分岐が増えればcaseをそれだけ増やせば良いのでした。
switchのよる条件分岐の式で注意すべきはbreakでした。
breakを入れることでswitch式を抜け出すのでした。
逆にいうと、switchを入れないことで、case1,2で同じ内容を実行できるというメリットも享受できるのでした。
詳しいソースコードについては、前記事を参照してください。
次回からは繰り返しのプログラムを説明します。
分岐のプログラム まとめ① [Java]
分岐のプログラム その7 [Java]
前回はswitchを使った分岐のプログラムについて説明しました。
switchを使うことにより、if elseで書いた時に長くなりがちなコードがスッキリし、見通しが良くなるのでしたね。
今回はswitchの応用編。(といってもそんなに複雑ではありません・・・)
今回はおみくじを例に説明していきます。おみくじには大吉、吉、小吉、末吉、末小吉、凶、大凶と7種類あります。
(ちなみに筆者はこれまで末小吉を見たことがありません。)
ところで、それぞれがどのくらいの比率で入っているか知っていますか?
神社により異なるらしいのですが、概ね吉、凶、大吉あたりが多いようです。
「おみくじプログラム」を作ることを考えた時、何とかしてこの比率もプログラムに反映できたらいいですよね。
今回はswitchを使って簡単に比率も考慮に入れた「おみくじプログラム」 を作ってみたいと思います。
今回はプログラムをわかりやすくするため、大吉、吉、小吉、凶、大凶の5つのくじが入っているとします。
それぞれの比率は
大吉:吉:小吉:凶:大凶
= 2:3: 1:2: 1
とします。
ifを使って書くとなると相当めんどうなことになりそうですが、switchを使うことで簡単に書くことができます。
public class Main{
public static void main(String[] args){
System.out.println("占います。");
int uranai=new java.util.Random().nextInt(9)+1;
switch(uranai){
case1:
case2:
System.out.println("大吉");
break;
case3:
case4:
case5:
System.out.println("吉");
break;
case6:
System.out.println("小吉");
break;
case7:
case8:
System.out.println("凶");
break;
case9:
System.out.println("大凶");
}
}
}
前回はcase1の場合は〜、case2の場合は・・・、というようにbreakで区切ることによってそれぞれのケースの実行結果を記述していきました。
ポイントは「breakで区切る」ということです。
breakまできたらswitchの大きな括りから抜け出すのでしたね。ということは、逆に言うとbreakが来るまでは抜け出せない(抜け出さない) ということです。
それを利用して、case1と2の場合は大吉、case3と4と5の場合は吉というように、case1とcase2で同じ実行内容にするといったことができるのです。
ちなみに、ミスでcase6のbreakを万が一書き忘れた場合には小吉と吉が表示されてしまいます。
break文の正しい使い方を覚えて、分岐に役立てましょう。
分岐についてはこれで一通り説明し終えました。次は繰り返しのプログラムを説明しようと思うのですが、その前に、
分岐の総復習をしたいと思います。