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


スキル無しのシステムインストラクターから、システムエンジニアへの転身日記。
◇◆◇ 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

レスポンシブWebデザインでサイト構築

新しいサイトを構築始めました。
以前から作ってたサイトは、デザインに懲りすぎて設計が適当すぎたので、
もう、どこから手を付けていいかわからなくなってしまい、一旦放置することにしました。
テーマから作り直しかな・・・。(そんな暇ないでしょ)

新しいサイトは、スマホ、タブレット、PCのどれから見ても対応できるレスポンシブWebデザインを採用。
デザインに懲りすぎて進まなくなるので、まずは職人さんが作ったワードプレスのテーマを採用。
そこから少しずつカスタマイズしていこうと思います。

サーバに関しては一から立てません。
ドメインを取得後、ドメイン取得サイト運営のフリーのサーバに
WordpressとPHPをインストールしてもらっちゃって運用。
スタードメインを利用しました。
結構、ドメインとるのはいいけどレンタルサーバの契約までさせられて、なんだよ数百円じゃないじゃんとなるんですが
スタードメインだと最少容量のサーバ+wordpressインストール無料です。何気におすすめ。

ワードプレス自体はあとでも移行できるので、
色々やりたくなったら、ワードプレスのバックアップとDBのdumpを抜いて
好きなレンサバとかAWSに移行すればよい。

もちろん、サーバから立てれば便利なことはたくさんある。
FTPは使わず、アップロードディレクトリ自体をSVNにしてしまえば、
自宅のディレクトリの中身をコミットするだけでアップロードできちゃう。など。

でも最初から頭でっかちで課金していくと、運用が乗るまでに費用ががかかりすぎるので、
初めはなるべくお金をかけないのがポイント。

今回のサイトは、私のSEO知識とアフィリエイト知識を持って、作成する商用サイト。
費用はかけずに、ある程度の利益を出すまではお金はかけない。

そして、SEOの胆の一つであるコンテンツ作り。
明らかに手が足りないので、嫁さんにコンテンツの文章だけは手伝ってもらうことにしました。
(お願いしましたが、今のところひとつも・・げほげほ)

レスポンシブwebデザインで、最初につまづいたのは、画像がらみ。
アフィリエイトやアイキャッチ画像を固定値のまま使用するとがっつりデザインが崩れる。
今考えれば当たり前だな。CSSで調整する必要がある。
この辺は、しっかり勉強し直し!

コンテンツページを100作るのと平行して、デザインも整えていかねば。

まずは、こんな感じ。挫折しないよう完成させるぞ!

ファンブログのメンテナンス情報

下記期間にブログ記事の閲覧ができなくなります。
大した影響はないかと思いますが、事前に告知しておきます。


メンテナンス日

2014年1月21日(火)15:00〜22日(水)17:00 ※予定
※メンテナンス終了期間は、場合によって前後する可能性がございます。予めご了承ください。
メンテナンスの期間、以下機能が使用できなくなりますのでご注意ください。

・ファンブログへのログイン

・ブログ記事の投稿

・ブログ記事の閲覧

・メール投稿機能

・A8.net管理画面内のクイック投稿機能(ツール内の簡単投稿)



1つだけ私に大きく影響するのは、こちら。

Q.コメントやトラックバックはどうなりますか?
リニューアル後は、コメント・トラックバックの機能をご利用いただけます。
リニューアル前のコメント・トラックバックデータは、2013年8月2日以降のデータのみ移行されます。


なぜに、8/2以前のコメントを引き継がない・・・。
今自分の管理ページからコメントを見てみたら、なぜか8/1より前のコメントは残されていない。
そして、8/1は、はびさんが、一番最初にコメントをくれた日じゃないか!!
これが消えるだと・・・。ショック。

まず、テキストとしては保存。

広告0のブログスペースであることはうれしいけど、こういう配慮が欠けるよね。ファンブログさん。
あと、サイドバーしょっちゅう消えてるし。これがアクセス数にも影響してくるから、
こういうのもメンテナンスしてほしい・・・。

JavaEEの前に復習をしてみる その11 クラスを分けてみる。

やっと、来ました。クラス分け。
今まで、単一のクラスで全部処理していましたが、
処理を分割したいと思います。

勇者を表すクラスと、アクションを担当するクラスを作ります。

まず、勇者のクラス

package test;

public class Yuusha {
public static void main (String [] args) {
String name = "勇者";
int attackPower = 5;
int damage = ActionLogic. attack(attackPower);

System. out .println("勇者は○○に" +damage +"のダメージを与えた" );
}
}


そして、アクションのクラス

package test;

public class ActionLogic {

public static int attack( int point){
return point*2;

}
}

結果は、
勇者はゴブリンに10のダメージを与えた。

処理の流れとしては、
攻撃力が5の勇者さん。敵にどれくらいのダメージを与えるか計算するクラスを
「ActionLogic」としました。そして、そのメソッドに「attack」を作って、

int damage = ActionLogic. attack(attackPower);

damageは、ActionLogicのattackというメソッドに、attackPowerの値を渡してね。

public static int attack( int point){
return point*2;

attackPowerの値を、pointという変数で受け取って、2倍した値を返します。

そして、返された値の 10 が damageに入ります。

そして、出力される結果は、「勇者はゴブリンに10のダメージを与えた。」となるわけです。


カプセル化とかが出てくると、こんなコードは書けない(セキュリティ上)のですが、
まずは、他のクラスを動かして値を取得できるといった動きの確認でした。

JavaEEの前に復習をしてみる その10 オーバーロード

オーバーロードと聞くと、オーバーワークを思い浮かべてしまいます。
そんなのは、私だけ。。。
昨日、メソッドを実行する際に、値を直接もたせて処理させる。
なんてことをさせましたが、Javaにはオーバーロードという考え方がありまして、
もたせる値の型が違えば、同一の名前のメソッドを複数立てても構わないというルールがありました。

え?どういうこと?

薬剤師というクラスがあって、compaundというメソッドを3つ作ります。
通常、同じ名前のメソッドが3つあると、 compaund(); と実行させても、

おい、どのcompaundだよ!どれでもいいのか?いや、そんなことはできない!!
とエラーを返されます。

ですが、下記のプログラムのように、メソッドが持つ引数の中身が違えば、
同じ名前でも、一致する引数のものを動かせばいいと判断できるので、同一でも可能なのです。


package test;

public class Pharmacist {

public static void main (String [] args){
compound( "薬草");
compound( "薬草",3);
compound( "薬草", "毒消草" );
}

public static void compound(String item1){
System. out .println(item1+"を手に取って眺めた" );
}

public static void compound(String item1, int num1){
System. out .println(item1+"を" +num1+"個重ねてすり潰した" );
}
public static void compound(String item1,String item2){
System. out .println(item1+"と" +item2+"を調合して、新たなアイテムを作った" );

}

}



結果

薬草を手に取って眺めた
薬草を3個重ねてすり潰した
薬草と毒消草を調合して、新たなアイテムを作った


これを応用すると、同じメソッドへの命令でも、もたされた値によって動きを変えるということができるようになります。
薬剤師さんも、持っているアイテムや数量によって、処理する結果を変えることができるんですね。

オーバーロードとか、オーバーライドとか、このあたりから、じゃんじゃん出てきますね。
まだまだ入門の入門という感じです。

JavaEEの前に復習をしてみる その9 メソッドを分けてみる。

JavaEEの前に復習をしてみる その6で、Shadeがスイッチ文で行動を分岐しました。
それを一つのメソッドの中に処理を全部書くと、とても見づらいですし、
1つの処理を直すために、全部の処理を書き直す。なんてことになります。
なので、まず、メソッドを分けることについて考えます。

今までだと、1つのクラスの中に、1つのメソッドでしたが、
1つのクラスに4つのメソッドを入れてみます。

mainメソッドと、attackメソッドと、defenceメソッドと、recoveryメソッドです。

package test;

public class Renshu3{
String job = "勇者" ;
static String name = "Shade" ;
static int hitpoint = 10;
static int maxHitpoint = 20;
int at = 5;
static int df = 5;

public static void main (String [] args){
System. out .println( "1.攻撃 / 2.防御 /3.回復" );
int select = new java.util.Scanner(System. in ).nextInt();
switch (select){
case 1:attack( "ゴブリン" );
break ;
case 2:defence();
break ;
case 3:recovery();
default :System.out .println ("なにもしなかった。" );
}
}

public static void attack(String enemyName){
System. out .println(enemyName+ "に攻撃!" );
}

public static void defence(){
System. out .println( name +"は身を守っている。" );
df = df * 2;
}

public static void recovery(){
System. out .println( name +"は、けがの治療に専念した。" );
hitpoint = maxHitpoint ;
}


}



その6ではケースごとに、コンソールへ結果を出力していましたが。
ケースごとに、メソッドを呼び出すことによって、そのメソッドの内部のコードを処理させています。
それぞれ役割が別れているため、コードも見やすいですし、対象メソッドの中身だけ修正すれば、
mainメソッドの中身は変える必要がないのです。

また、
case 1:attack( "ゴブリン" );
メソッドを実行させる際に、値を持たせることができます。

public static void attack(String enemyName){
System. out .println(enemyName+ "に攻撃!" );

メソッド側で、その値を受け取って処理を継続させることもできます。

結果は、下記のように。

1.攻撃 / 2.防御 /3.回復
1
ゴブリンに攻撃!


ここまでの知識で、ある程度のプログラムは組めるような気がしてきますが、
このプログラムはJavaらしさ0です。上司にこのプログラムを見せて、プラグラミングやらせてください!
とか言ったら、お前はインフラにずっといるがよい。フハハハハ!!という魔王並みの発言をされますね。(※ そんな上司はいません)
正直、オブジェクト指向は、あまり得意ではありません。復習と同時に得意にならねばならないな・・・。

JavaEEの前に復習をしてみる その8 2次元配列

勇者さんの道具箱は10個まででも良いとして、
街の商人さんの道具箱は100個くらいは入ってほしいです。
商人さんも、100個入れられる道具箱を作りましょう。

String[] toolbox = new String[100];

できたー!!
でも、この道具箱使いづらくないか?
[薬草|薬草|薬草|薬草|毒消草|毒消草|毒消草|毒消草|毒消草|毒消草|聖水|聖水|薬草|薬草|・・・・・・]
横一列に100個仕切りがあるのです。
凄い横長の店舗を構えなければなりませんし。一つの仕切りが30cmだったとしても、
一番端から端まで30mはあります。

えーと、聖水どこにあったっけ・・・。
あれ、薬草がこんなところにもあった!げ、消費期限きれてる!!
まんげつ草?あったかな、げ、一番端だ!お客様、しばらくお待ちください・・・!!

道具屋さんの道具箱は整理整頓できる棚のようなものがいいですね。
たとえば、10×10のカラーボックスのようなものに、
一番上は薬草、2段目は毒消し草としたらどうでしょう。
先ほどよりは、わかりやすいですね。

では、商人さんのために作っていきます。
前回の応用で、配列を2次元配列に置き換えます。
書き方は結構シンプルで、

String[][] toolbox = new String[10][10];

これだけ。[]が一個増えただけです。

0[0|1|2|3|4|5|6|7|8|9]
1[0|1|2|3|4|5|6|7|8|9]
2[0|1|2|3|4|5|6|7|8|9]
3[0|1|2|3|4|5|6|7|8|9]
4[0|1|2|3|4|5|6|7|8|9]
5[0|1|2|3|4|5|6|7|8|9]
6[0|1|2|3|4|5|6|7|8|9]
7[0|1|2|3|4|5|6|7|8|9]
8[0|1|2|3|4|5|6|7|8|9]
9[0|1|2|3|4|5|6|7|8|9]  商人

こんな大きな棚ができてしまいました。
急に立派になりました。商人さん、上の段まで手が届きませんww

if文を使えばもっとシンプルに書けますが、わかりやすくするため、
それぞれをfor文で処理してみました。

package test;

public class Tools2 {
public static void main (String [] args){
int yakusou = 5;
int dokukeshi = 3;
int seisui = 8;

String[][] toolbox = new String[10][10];

for (int i=0; i < yakusou; i++){
toolbox[0][i] = "薬草" +i+" " ;
}

for (int i=0; i < dokukeshi; i++){
toolbox[1][i] = "毒消草" +i+" " ;
}

for (int i=0; i < seisui; i++){
toolbox[2][i] = "聖水" +i+" " ;
}

for (int i=0; i < toolbox. length; i++){
for (int j=0; j <= 9; j++){
System. out .print(toolbox[i][j]+" " );
}
System. out .println("" );
}
}
}


結果は、

薬草0 薬草1 薬草2 薬草3 薬草4 null null null null null
毒消草0 毒消草1 毒消草2 null null null null null null null
聖水0 聖水1 聖水2 聖水3 聖水4 聖水5 聖水6 聖水7 null null
null null null null null null null null null null
null null null null null null null null null null
null null null null null null null null null null
null null null null null null null null null null
null null null null null null null null null null
null null null null null null null null null null
null null null null null null null null null null


これで整理整頓できました。よく使うものは下の段から入れてよ。
と商人さんから文句を言われたのは言うまでもありません。

JavaEEの前に復習をしてみる その7 配列とfor文

私が、Javaの勉強を始めた時は、何かとRPGの処理に例える。
といった感じで遊びの中で学習していきました。
Java SE Silverの知識をさくっと頭に入れられたのは、
根底にJavaの知識があったからで、資格勉強から始めていたら、
プログラミングは挫折していたでしょう。。。

というわけで、今回は、for文と、配列を使ったプログラム。

道具屋で、薬草を10個買います。
そして、その薬草を道具箱にしまっていく。というイメージ。

String toolbox1 = "薬草0";
String toolbox2 = "薬草1";
String toolbox3 = "薬草2";
String toolbox4 = "役僧3";





とかやっていると、10くらいは頑張れますが、誤字脱字や、
やたらtoolboxが増えて、道具一個しか走らない道具箱10個を抱えて
勇者は冒険に旅立ちます。箱10個引きずった勇者は、かっこよくないですねw

【イメージ図】勇者_[1][1][1][1][1][1][1][1][1][1]

箱を一つにするには、配列という方法ですっきりさせます。

String[] toolbox = new String[10];

上記のように書くことで、文字列型のtoolboxに0から10個の配列を与えます。
一個の箱に、10個入るよう仕切りを付けたような形ですね。
[0|1|2|3|4|5|6|7|8|9]
左から2個目に薬草を入れるのであれば、

toolbox[1] = "薬草";

これでOKです。

よし、10個入る道具箱ができたぞ!
それでは、10個薬草をしまっていくか・・・

toolbox[0] = "薬草";
toolbox[1] = "薬草";
toolbox[2] = "役僧";



ちょっと待った!!変わってないじゃないかww
道具箱にポンっと置いたら自動的に10個並べたい。

そういう時は、for文で処理させましょう。

for (int i=0; i < toolbox. length; i++){
toolbox[i] = "薬草" +i;
}

ここで言う iは、10回処理させるため専用の変数。
toolbox. lengthは、toolbox自体の宣言した値の最大値。
i++は、for文が一回回ったら、iに1ずつ加算される。
これで10回まわります。
そして、for文の中にはtoolbox[i]に薬草+iが代入される処理が含まれているので、
1回for文が回るごとに、toolboxのそれぞれの領域に、薬草がしまわれている。

プログラムは、これだけ。


package test;

public class Tools {
public static void main (String [] args){
String[] toolbox = new String[10];

for (int i=0; i < toolbox. length; i++){
toolbox[i] = "薬草" +i;
System. out .println(toolbox[i]);

}
}
}



結果。
わかりやすくするため、薬草に番号を付けてその場で出力もさせちゃう。

薬草0
薬草1
薬草2
薬草3
薬草4
薬草5
薬草6
薬草7
薬草8
薬草9

これで、ループ文と配列を思い出しました。
まだ、JavaEEにいくには、長いね・・・。

ちなみに、下記がカッコいいと言っているわけではありませんw
【イメージ図】勇者_[0|1|2|3|4|5|6|7|8|9]

JavaEEの前に復習をしてみる その6 キーボード入力とSwitch分岐


今までのコードだと、コードを上から下に流すだけで、
プログラム実行者が操作したりといったことがありませんでした。
せめてキーボードから、何か入力をしたい!

そういうときは、下記を使います。

java.util.Scanner (System. in ).nextInt();

キーボードからの数値を受け付けることができます。
これで、入力された数値に対して、違う動きをさせることが可能です。

合わせてSwitch文を使います。

switch (select){
case 1:System. out.println( "攻撃します。 …誰もいません!" );
break ;
case 2:System. out.println( "防御します。 けど、誰もいません!" );
break ;
case 3:System. out.println ("回復します。 とりあえず、寝ましょうか。" );
break ;
default :System.out .println( "1~3で選んでください。" );
break ;
}

これは、selectという変数の値で、caseに続く値と一致した時に、こういう処理をしなさい。
defaultは、上記に該当しない場合、次の処理をしなさいという意味合いで使っています。

プログラムにしますと、

package test;

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

public class Rensyu {
public static void main (String [] args){
int hitPoint = new java.util.Random().nextInt(51);
int select ;
String menu = "1.攻撃 / 2.防御 / 3.回復" ;
String name = "Shade" ;
String status= "" ;

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

System. out .println( "名前:" +status+name);
System. out .println( "HP:" +hitPoint);
System. out .println();
System. out .println(menu);
select = new java.util.Scanner (System. in).nextInt();

switch (select){
case 1:System. out.println ("攻撃します。 …誰もいません!" );
break ;
case 2:System. out.println ("防御します。 けど、誰もいません!" );
break ;
case 3:System. out.println ("回復します。 とりあえず、寝ましょうか。" );
break ;
default :System.out .println ("1~3で選んでください。" );
break ;
}

}
}


結果は1を選ぶと、

名前:瀕死 Shade
HP:2

1.攻撃 / 2.防御 / 3.回復
1
攻撃します。 …誰もいません!

4を選ぶと、

名前:Shade
HP:28

1.攻撃 / 2.防御 / 3.回復
4
1~3で選んでください。

といったようになります。
勿論、正規のプログラムであれば、一つのクラスで処理する内容ではありません。
メニュー用のクラス、キャラクター用のクラスなど処理ごとに分ける必要があります。
これでは、Javaプログラミングではないのです。
とりあえず、コードの書き方に慣れるための練習ということで・・・。

Java SE Silverの試験でも、Switchは出たような。。。

switch (select){
case 1:System. out.println ("攻撃します。 …誰もいません!" );
break ;
case 2:System. out.println ("防御します。 けど、誰もいません!" );
break ;
case 3:System. out.println ("回復します。 とりあえず、寝ましょうか。" );
break ;
default :System.out .println ("1~3で選んでください。" );
break ;
}

たとえば、case3のbreakを書き忘れた場合に、3を選択するとどうでしょう、

回復します。 とりあえず、寝ましょうか。
1~3で選んでください。


上記のように、breakがあるとこまで、次の処理も行ってしまいます。
コードの入力の正確さって大事ですね。

ちなみに、整数以外の文字列が入力された場合は、

名前:Shade
HP:45

1.攻撃 / 2.防御 / 3.回復
あああ
Exception in thread "main" java.util.InputMismatchException
at java.util.Scanner.throwFor(Unknown Source)
at java.util.Scanner.next(Unknown Source)
at java.util.Scanner.nextInt(Unknown Source)
at java.util.Scanner.nextInt(Unknown Source)
at test.Rensyu.main( Rensyu.java:22 )


このようにエラーが返されます。これは、selectがint型で宣言されているためです。
回避する方法はあります。ただし、このペースだと、だいぶ先になりそうですw

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日以上新しい記事の更新がないブログに表示されております。