質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

プログラミング言語

プログラミング言語はパソコン上で実行することができるソースコードを記述する為に扱う言語の総称です。

Eclipse

Eclipseは、IBM社で開発された統合開発環境のひとつです。2001年11月にオープンソース化されました。 たくさんのプラグインがあり自由に機能を追加をすることができるため、開発ツールにおける共通プラットフォームとして位置づけられています。 Eclipse自体は、Javaで実装されています。

Q&A

1回答

870閲覧

Java eclipseの実行、デバッグについて

nikkucc

総合スコア14

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

プログラミング言語

プログラミング言語はパソコン上で実行することができるソースコードを記述する為に扱う言語の総称です。

Eclipse

Eclipseは、IBM社で開発された統合開発環境のひとつです。2001年11月にオープンソース化されました。 たくさんのプラグインがあり自由に機能を追加をすることができるため、開発ツールにおける共通プラットフォームとして位置づけられています。 Eclipse自体は、Javaで実装されています。

0グッド

0クリップ

投稿2019/06/18 05:56

編集2019/06/18 06:11

Javaのeclipseを利用しております。
今動かしてみて疑問に感じたことを質問させてください。
実行を選択した場合と、デバッグを行った場合では、結果に違いがでるのですが、それは何故でしょうか?
仕様だとするなら仕方がないので諦めますが、デバッグしても正確な情報が得られず困っております。
いくつも質問して申し訳ないですが、よろしくお願い致します。

Java1

1package application; 2class Actor extends Thread{ 3 private int hitpoint; 4 private int offence; 5 private int deffence; 6 private String name; 7 private Actor target; 8 private int deley = 1; 9 10 public int getHitPoint() { 11 return hitpoint; 12 } 13 14 public int getOffence() { 15 return offence; 16 } 17 18 public int getDeffence() { 19 return deffence; 20 } 21 public Actor getTarget() { 22 return target; 23 } 24 25 public void setHitPoint(int hitpoint) { 26 this.hitpoint = hitpoint; 27 } 28 public void setAttack(int offence) { 29 this.offence = offence; 30 } 31 public void setDeffence(int deffence) { 32 this.deffence = deffence; 33 } 34 35 public void setTarget(Actor target) { 36 this.target = target; 37 } 38 public boolean isDead() { 39 return target.hitpoint<=0; 40 } 41 42 public Actor(String name,int hitpoint,int offence,int deffence) { 43 this.name = name; 44 this.hitpoint = hitpoint; 45 this.offence = offence; 46 this.deffence = deffence; 47 } 48 49 public void attack(Actor pActor) { 50 int damage = offence - pActor.getDeffence(); 51 if(damage >= 0) { 52 pActor.setHitPoint(pActor.getHitPoint()-damage); 53 System.out.println(name+"は"+pActor.getName()+"に"+damage+"のダメージを与えた!"); 54 55 }else if(damage<=0) { 56 System.out.println("ダメージを受けない"); 57 } 58 59 60 } 61 62 public void run() { 63 while(true) { 64 try { 65 sleep(0 * deley); 66 67 }catch(InterruptedException e) { 68 } 69 if(isDead()) { 70 System.out.println(target+"を倒した!"); 71 break; 72 } 73 attack(target); 74 75 } 76 } 77}

html

1package application; 2 3public class MyMain { 4 5 6 public static void main(String[] args) { 7 8 Actor Hero = new Actor("主人公",100,25,15); 9 10 Actor Enemy1 = new Actor("敵1",60,30,5); 11 12 Hero.setTarget(Enemy1); 13 Enemy1.setTarget(Hero); 14 Hero.start(); 15 Enemy1.start(); 16} 17 }

実行時の結果
敵1はThread-0に15のダメージを与えた!
主人公はThread-1に20のダメージを与えた!
敵1はThread-0に15のダメージを与えた!
主人公はThread-1に20のダメージを与えた!
敵1はThread-0に15のダメージを与えた!
主人公はThread-1に20のダメージを与えた!
敵1はThread-0に15のダメージを与えた!
敵1はThread-0に15のダメージを与えた!
Thread[Thread-1,5,main]を倒した!
敵1はThread-0に15のダメージを与えた!
敵1はThread-0に15のダメージを与えた!
Thread[Thread-0,5,]を倒した!

デバッグ時の結果主人公はThread-1に20のダメージを与えた!
主人公はThread-1に20のダメージを与えた!
主人公はThread-1に20のダメージを与えた!
Thread[Thread-1,5,main]を倒した!
敵1はThread-0に15のダメージを与えた!
敵1はThread-0に15のダメージを与えた!
敵1はThread-0に15のダメージを与えた!
敵1はThread-0に15のダメージを与えた!
敵1はThread-0に15のダメージを与えた!
敵1はThread-0に15のダメージを与えた!
敵1はThread-0に15のダメージを与えた!
Thread[Thread-0,5,]を倒した!

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

nskydiving

2019/06/18 06:00

実行結果だけでは分かりませんので、ソースコードの提示をお願いします。
nikkucc

2019/06/18 06:11

ご指摘ありがとうございます。 エクリプスが原因かと思い、ソースコードの提示をしておりませんでした。 よろしくお願い致します。
guest

回答1

0

マルチスレッドで実行している以上は2つのスレッドで行われることは順不同です。
試しに、何度も「実行」をしてみてください。

投稿2019/06/18 07:14

mather

総合スコア6753

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問