###前提・実現したいこと
eclipseを使ってjavaのプログラムを書いています。
eat()メソッドとrun()メソッドをつくり、それぞれ実行されるたびにint型の変数manpukudo(満腹度)が増減するプログラムを書いています。
eat()メソッドとrun()メソッドが繰り返されてもmanpukudoが0から100におさまるように、メソッド内に仕掛けもつけました。たとえば、manpukudoが100の時点でeat()メソッドを呼び出すと「(名前)は満腹のため食べられませんでした。」という文が表示されることを目指しました。
ちなみに
http://nobuo-create.net/java-beginner-24/
このページを勉強していて自分で書いたものです。
###発生している問題・エラーメッセージ
manpukudoの初期値は50にしており、これは0より大きく100より小さいので、eat()メソッドが実行され「(名前)は食事をとりました。」という文がでるはずです。しかし実行結果は
Peterは満腹の為食べれませんでした。 Peterは空腹の為走れませんでした。 Peterの満腹度は60です。
こうなりました。
①eat()メソッド1回実行後のmanpukudoは100になるはずであること。
②eat()メソッドが実行されて「Peterは食事をとりました。」という文が出るはずなのにそうなっていないこと。
③run()メソッドは実行されていないのに2行目の文章がでていること。
以上3点の原因がわかりません。
###該当のソースコード
java
1public class Review0810 { 2 3 private String name; //名前、誕生日、満腹度という変数をつくる 4 private int birthday; 5 private int manpukudo; 6 7 Review0810(String name, int birthday){ //コンストラクタ 8 9 this.name = name; 10 this.birthday = birthday; 11 this.manpukudo = 50; 12 13 14 } 15 16 17 18 19 public String getName() { //名前と誕生日と満腹度の各変数のゲッター 20 return name; 21 } 22 23 24 public int getBirthday() { 25 return birthday; 26 } 27 28 29 public int getManpukudo() { 30 return manpukudo; 31 } 32 33 34 public boolean eat(){ //eat()メソッド 35 36 boolean result = false; 37 38 if(this.manpukudo < 100){ //満腹度が0より大きく100より小さくなるようにする。 39 this.manpukudo += 50; 40 41 if(this.manpukudo > 100){ 42 43 this.manpukudo = 100; 44 45 result = true; 46 47 } 48 49 } 50 51 return result; //eat()メソッドで何かがなされればtrueを、何もしなかったらfalseを返すようにする 52 53 54 } 55 56 57public boolean run(){ //run()メソッド 58 59 boolean result = false; 60 61 if(this.manpukudo > 0){ //満腹度が0より大きく100より小さくなるようにする。 62 63 this.manpukudo -= 40; 64 65 if(this.manpukudo < 0){ 66 67 this.manpukudo = 0; 68 69 result = true; 70 71 } 72 73 } 74 75 return result; //run()メソッドで何かがなされればtrueを、何もしなかったらfalseを返すようにする 76 77 } 78
public class DoIt0810 { public static void main(String[] args) { Review0810 peter = new Review0810("Peter", 160810); //コンストラクタに引数をわたす peter.eat(); //eat()メソッドを呼ぶ if(peter.eat()){ //eat()メソッドの実行内容によって表示文が変わるようにする System.out.println(peter.getName() + "は食事をとりました。"); }else{ System.out.println(peter.getName() + "は満腹の為食べれませんでした。"); } if(peter.run()){ //run()メソッドの実行内容によって表示文が変わるようにする System.out.println(peter.getName() + "は走りました。"); }else{ System.out.println(peter.getName() + "は空腹の為走れませんでした。"); } System.out.println("Peterの満腹度は" + peter.getManpukudo()+ "です。");
###試したこと
コードがきちんと保存されているか確かめました。
保存はできていました。
###補足情報(言語/FW/ツール等のバージョンなど)
より詳細な情報
回答4件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2016/08/15 11:15