アフィリエイト広告を利用しています


スキル無しのシステムインストラクターから、システムエンジニアへの転身日記。
◇◆◇ 2013年取得資格
LPICレベル1
LPICレベル2
LPICレベル3 Core
LPICレベル3 Speciality 302
LPICレベル3 Speciality 303
LPICレベル3 Speciality 304

Cisco CCENT
Cisco CCNA

Java SE 7 Silver
Java SE 7 GOLD

OSS-DB Silver

◇◆◇ 2014年取得資格
HTML5 Professional レベル1

広告

この広告は30日以上更新がないブログに表示されております。
新規記事の投稿を行うことで、非表示にすることが可能です。
posted by fanblog

JavaEEの前に復習をしてみる その5 ランダムとif文を覚えてプログラマー気取り

そして、さっそくちょっとぶっ飛びますので、みなぶっとびカードを1枚使いますw(桃鉄)

ランダム関数を使うと、それとないことが色々できるようになります。
たとえば、乱数を利用しておみくじ作り、乱数を利用してスゴロク。
今までの変数の代入と、乱数さえ利用すれば、Javaっぽさは、まだまだ使えませんが
プログラムとしては、それなりのものになると思います。

以降、インデントの補正はしません。
ちょっと見づらいかもしれませんが、脳内でインデント入れてくださいw
実際は入れています。
そしてEclipseを使ってTabキーを押せば、良い感じのインデントを勝手に考えて入れてくれます。

細かい説明はしませんが(ちょっと本気で忘れてる)、
ランダム関数を使うには、new java.util.Random().nextInt(値)を使います。
下記では、hitPointという変数に0~50の値がランダムで入ります。


package test;

/* Rensyu 練習用クラス 
開発者 shade 作成日 1/1 */

public class Rensyu {
public static void main (String [] args){

int hitPoint = new java.util.Random().nextInt(51);
String name = "Shade" ;

System. out.println("名前:" +name);
System. out.println("HP:" +hitPoint);


}
}


上記の結果は、
名前:Shade
HP:46

となり、HPは、0になることもあれば、50になることもあります。

これにif文を加えてみます。
if文は条件分岐に使います。
上記の例を応用し、HPが10以下になった時は、名前の前に瀕死とつけます。

statusというステータス用の変数を用意します。今は中に瀕死の文字列はありません。
String status= "" ;

if文を用意します。
もし、hitPointが10以下ならば、statusに瀕死 という文字列を代入。
そうでなければ、何も処理はされません。

if (hitPoint <= 10){
status = "瀕死 " ;
}

そして、nameの前にstatusを追記します。
System. out .println("名前:" +status+name);


プログラムは、下記。

package test;

/* Rensyu 練習用クラス 
開発者 shade 作成日 1/1 */

public class Rensyu {
public static void main (String [] args){

int hitPoint = new java.util.Random().nextInt(51);
String name = "Shade" ;
String status= "";

if(hitPoint <= 10){
status = "瀕死 ";
}

System. out.println("名前:" +status+name);
System. out.println("HP:" +hitPoint);


}
}

結果は、hitPointが10以下であれば、

名前:瀕死 Shade
HP:10

といった結果が返ってきます。
11以上であれば、

名前:Shade
HP:11

このように表示がされます。

ランダムとifを使うだけで、プログラムに動きが見えてきます。
ちょっとプログラムをかける気になるから不思議ですね。

JavaEEの前に復習をしてみる その4 変数同士の計算をしてみる。

変数同士の計算を、Javaで行ってみたいと思います。
初歩の初歩から、技術を思い出すために書き連ねていきます。
まだ、Java触ったことのない人は、過去記事のEclipseのインストールから行っていくと、
shadeの独学レベルまでは、たどり着けるかもしれません。そして、そのままGOLDとっちゃってくださいw
でも、めんどくさくなって、どーーん!!と話がぶっ飛ぶことこともお許しくださいw

int型の、num1とnum2を使って計算をします。
int num1 = 5;
int num2 = 6;
と、2つの値を宣言しておきます。
そして、この2つを使って四則演算をします。

まず、加算。

System. out.println ( "num1+num2=" +num1+num2+ "です。" );

これで、どんな結果が返ると思いますか?

5+6だから、11!

ではなくて、

num1+num2=56です。

となります。


これは、初歩的なです。
プログラムに慣れてくれば、当たり前じゃん!という内容なんですけどね。

こう、書くとどうでしょう。

System. out .println ( num1+num2 +"です。" );

これだと、

11です。

となります。

これは、
"num1+num2=" +num1+num2+ "です。"

"num1+num2=" と "です。"が、文字列です。
num1と、num2は数値型です。
文字列と数値は直接足すことができないので、一番左にある文字列が優先され処理されます。
そしてプログラムは左側から優先的に処理されるので、

"num1+num2=" + 5 = "num1+num2=5"
"num1+num2=5" + 6 = "num1+num2=56"
"num1+num2=56" + "です。" = "num1+num2=56です。"

となってしまうわけです。

System. out .println ( num1+num2 +"です。" );
こちらの場合は、一番左が数値型で、次も数値型なので、数値同士の計算が先にされて、
最後に文字列がくっつく形になるので、正しい計算がされ、11と返されるわけです。

num1+num2=11です。と表示したければ、
System. out .println ( "num1+num2=" +(num1+num2)+ "です。" );
と、このように、数値型同士をかっこで括って優先的に処理してしまえばOKです。

実は、こういうのがJava SE Silverの問題に出てきて、結果は以下のうちどれでしょう。
といった感じで、11だったり、56だったりの中から答えを選ばせる問題が出ます。

四則演算をまとめて行うと、

public class Rensyu {
public static void main (String [] args){
int num1 = 5;
int num2 = 6;
System. out.println ( "num1+num2=" +(num1+num2)+"です。" );
System. out.println ( "num1-num2=" +(num1-num2)+"です。" );
System. out.println ( "num1*num2=" +(num1*num2)+"です。" );
System. out.println ( "num1/num2=" +(num1/num2)+"です。" );
}
}


もちろん、実際のプログラムでこんな書き型したら怒られますが、最初なので、こんな感じで。
結果は、

num1+num2=11です。
num1-num2=-1です。
num1*num2=30です。
num1/num2=0です。

と、なります。除算が0と表示されたのは、num1とnum2が整数型だからです。
整数型は小数点以下の数値を表示することはありません。
小数点以下を表示するのであれば、intではなく、float型を使うといいです。
今回も手抜きで書いてしまいますが、

public class Rensyu {
public static void main (String [] args){
float num1 = 5;
float num2 = 6;

System. out .println ( "num1+num2=" +(num1+num2)+ "です。" );
System. out .println ( "num1-num2=" +(num1-num2)+ "です。" );
System. out .println ( "num1*num2=" +(num1*num2)+ "です。" );
System. out .println ( "num1/num2=" +(num1/num2)+ "です。" );
}
}


こうすることで、以下のように表示することができます。

num1+num2=11.0です。
num1-num2=-1.0です。
num1*num2=30.0です。
num1/num2=0.8333333です。

もちろん、除算だけfloatの結果を返すような表記もできます。
しかし、長くなってきてしまったので、それはおいおい普通に書かれていると思いますw

私が刺激を受けたエンジニア

30を過ぎてくると、仕事のできる人、できない人が大きく別れてくる。
わたしのように転職を何度もしてきた人は、ITでは浅い部分にしか触れておらず、
深い仕事ができない分、「できない人」の方に入ってしまう。

それでも、半年間の猛勉強で、「知識だけ」は多少つき、ブランクを少し埋められたかなと思う。
この業界で重要なのは、知識と経験の両方なので、経験だけはどうしても縮められない分、
知識を人の2倍つけていかなければいけないと考えている。

やはり、同年代でも、知識と経験をつけてきた人は強い。
サーバの設計、構築。プログラミングに、ウェブ知識まで全部揃っていて、
一貫して一人でサービスを立ち上げてしまう人間がいた。

私も、全分野浅くは関わっているが、やはり経験で追い付かないし、
自作で作るのと、企業のサービスで作るのとは全然別物だ。
人からお金がとれるものを作れるようになってから、一人前。
私は、学生同様。まだまだなのだなぁと感じている。

上記のような、私が尊敬する逸材は、大抵ブラックを経験してきて、
過酷な労働条件で育ってきた人が多い。
やはり、そこでギブアップせず続けてきたからこそ身に付いたもので、失うものも多くあったことと思う。

ITに限りませんが、失うことを恐れて前に進めない人は、やっぱり成長できない。
私は、よく言えば慎重ですが、リスクをうまくコントロールできず、ただ拒否しながら生きているのだな。と実感しております。変えねば!と一時的には奮起するのですが、なかなか性格って変えられないものですね。

とにかく、今月は今後のビジョンと、今年サービスインさせるウェブサービスの設計に
じっくり時間をさきたいと思います。

JavaEEの前に復習をしてみる その3 コメントの記述と変数への代入

プログラムの説明として、コメントを入力する際には、以下のように記述する。

/* コメントを入力するには、
スラッシュとアスタリスクで括ると、複数行に至っても
コメントと見なされるのです。*/

//一行だけをコメントアウトするにはスラッシュを二つ続けた後に書く

複数行にわたって書く方法と、書いたコードの説明用にすぐ横に書く2つのパターンがある。
実際のコードだと、こんな感じ。あくまでイメージ。

package test;

/* Rensyu 練習用クラス 
開発者 shade 作成日 1/1 */

public class Rensyu {
  public static void main (String [] args){
    int age=20;//年齢詐称
    System.out.println ( "私の年齢は"+age+"歳です。" );
  }
}

クラスの説明文に複数行書いたり、ageという変数の説明用に使ったりしています。

さらっとコードに書きましたが、ageという変数に20という数字を入れています。
そして、ageの前に int をつけることで、32ビットの整数型に対応した変数として宣言できます。
詳しく書きませんが、文字列を変数に代入したい場合は、intではなく、Stringという変数を使います。

実際にEclipseを使って実行すると、こんな感じです。
Java_Program02.jpg
いつまで続くのこの企画・・・w

JavaEEの前に復習をしてみる その2 プログラムの構造

Javaのプログラムには、クラス、メソッドといった構造がある。
Javaのソースコードは { }  で囲まれていて、
一番外側にクラスブロックというブロックを持ち、
その内側にメソッドブロックを持つ。

ブログはインデントが効かないので、スペースを代用します。

public class Rensyu { ←クラスブロックの開始
  public static void main ( String [] args ) { ←メソッドブロックの開始
    System.out.println ( "こういう文法すらすぐ出てこない危機感" );
  } ←メソッドブロックの終了
} ←クラスメソッドの終了

基本的には、メソッドブロックの中に、コードを書いていく感じです。
ここでは、Rensyuクラスのメインメソッドに、
こういう文法すらすぐ出てこない危機感
というメッセージを出力しなさい。という何でもないコード。
実行すれば、コンソールに出力されます。

Eclipseだとこんな感じです。
Java_Program01.jpg

これが基本文法なので、初めの一歩として、わーい、うごいた!というやつですね。


Javaに限らず、プログラムには作法があるので、クラス名の頭は大文字にするとか、
インデントを開けることで、プログラムを見やすくするとか、多数のお約束ごとがあるので、
そういうのも覚えなければいけないのです。
<< 前へ     >>次へ

先頭に戻る

×

この広告は30日以上新しい記事の更新がないブログに表示されております。