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

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

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

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

Q&A

解決済

1回答

1325閲覧

Javaのソースコードの意味が分かりません

HIKASUKE

総合スコア15

Java

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

0グッド

0クリップ

投稿2019/07/18 08:48

編集2019/07/18 09:23

入門動画のソースコードの意味が分かりません。
投稿者の人にコメントをしてみましたが返信がないので質問させていただきました。
処理している内容を教えていただければ幸いです。


わからない内容
inputCommand() の中にある return(inputCommand()); がどのような処理をしているのかがわかりません。
putCommand() の中にある int c = inputCommand(); がどのような処理をしているのかがわかりません。

public class part01 { static String name = "すけさん"; static int lv = 30; //プレイヤーのレベル public static void main(String[] args) throws java.io.IOException { putJyosyou(); //序章を表示 putCommand(); //コマンドを表示 if(lv<40){ //レベルが40未満の場合 putGameOver(); //ゲームオーバー画面を表示 }else{ //レベルが40以上の場合 putGameClear(); //ゲームクリアの画面を表示 } } public static void putCommand() throws java.io.IOException { System.out.println("1. 魔王を倒しに行く"); System.out.println("2. 修行する"); int c = inputCommand(); if(c=='1'){ System.out.println("魔王が現れた!"); } else if(c=='2'){ lv += 5; System.out.println("レベルが"+lv+"になった"); putCommand(); } } public static int inputCommand() throws java.io.IOException { int c = System.in.read(); if(c==10 || c==13){ return(inputCommand()); } return(c); } /** * 序章を表示します */ public static void putJyosyou() { System.out.println("魔王が" + "世界を滅ぼそうとしています。"); System.out.println(name + "はレベル" + lv + "のツワモノです。"); } /** * ゲームオーバー画面を表示します */ public static void putGameOver() { System.out.println(name + "は魔王に敗れましたorz"); System.out.println("GAME OVER"); } /** * ゲームクリア画面を表示します */ public static void putGameClear() { String s0 = name + "は魔王を倒しました!"; put(s0); System.out.print("レベル" + lv); if(lv>200){ put("なので魔王はゴミでした。www"); }else if(lv>120){ put("なので魔王は弱すぎでした。"); }else if(lv>80){ put("なので余裕でした。"); }else if(lv>50){ put("でしたが倒せました。"); }else{ put("でしたので苦戦しました。"); } put("GAME CLEAR!"); } /** * 引数で指定された文字列を表示します * * @param str 表示対象の文字列 */ public static void put(String str) { System.out.println(str); } }

ソースコード元
ソースコードの詳細

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

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

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

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

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

y_waiwai

2019/07/18 09:05

コードは、質問を編集し、<code>ボタンを押して、’’’の枠の中に貼り付けてください
HIKASUKE

2019/07/18 09:07

わかりました!
m.ts10806

2019/07/18 09:09

そこまで難しい処理をしているようには見えませんが、何が分かりませんか? 関数や機能のリファレンスを確認すればそれなりに見えてくると思うのですが
HIKASUKE

2019/07/18 09:23

修正しました
guest

回答1

0

ベストアンサー

inputCommand() の中にある return(inputCommand()); がどのような処理をしているのかがわかりません。

キーボードから入力を受け取った時、ある値であれば再入力するように処理をしています。
「再帰」という自身の関数を呼び出すテクニックを使っています。
(再帰を使うようなものでもない気がしますが。)

putCommand() の中にある int c = inputCommand(); がどのような処理をしているのかがわかりません。

inputCommand()という関数を呼び出し、キーボードから入力された値を受け取っています。

投稿2019/07/18 11:20

dice142

総合スコア5158

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

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

HIKASUKE

2019/07/18 11:20

回答ありがとうございます!!
HIKASUKE

2019/07/18 11:23

teturn(c); というのは入力された値を putCommand() のcに代入いているということですか?
dice142

2019/07/18 11:36

return(c); は「入力された値を呼び出し元に返しますよ」という意味です。 putCommand()関数で呼び出されていればおっしゃっているようになりますし、 別な場所から呼び出されていればそこに返します。
HIKASUKE

2019/07/18 11:42

ありがとうございました! return の意味がよくわかりました!
dice142

2019/07/18 11:45

関数についてピンポイントで調べた方がわかり易い例と一緒に学べるかとおもいます。
HIKASUKE

2019/07/18 11:50

はい! わかりました
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問