コード四角ココアjava#6
21.109(火)
振り返る
コミットを有意義に書きましょう(各メソッドの機能実装は、タイトルのすべての内容:udacityコミットガイドを参照してください) 保留語(保留語として宣言しない) について考えてみましょう.をコミットする前に、コードの再フォーマットが必要です.(コミット時の形式は「単行要約見出し/<単行区切り>/詳細」) .法の増加に伴い,これをクラスに分類した. コットは「アルゴリズム問題解決戦略」という本を推薦するつもりだ. クラス名の最初の字は必ず大文字でなければなりません. が実施される前に、方法名 を1つずつ注記->にまとめてください.メソッドは、パラメータと戻り値を使用して通信する. 反復文は、CPUの高速動作速度を利用し、コードの簡略化に使用される. 条件文は、作業を検証するためのフィルタです. Returnの2つの意味(1.メソッドを終了します./2.呼び出しの方向に値を返します.) なぜ Returnを使用するのか:メソッド間の通信、すなわち 、インタラクション用メソッドは一度に1つのことをし、メソッドが集まってプログラムを完了します. オブジェクトは、クラスで作成されたとは限りません.(Javaのみ) 行動は常に状態を変化させ、行動は他のオブジェクトの状態を変化させる. クラスに分類->オブジェクト向けのプログラミングまたは設計. オブジェクト向けプログラムは、非常に大きなプログラムの作成とメンテナンスが容易です. 関数型は最近どのように多く使われていますか?(インターネットの発展とビッグデータ時代の到来に伴い、演算速度はますます重要になってきた) メソッドを作成する場合、無条件の基本は「private」です. の2 Dアレイとは? this. 何だったっけ?(オブジェクトを作成する場合はthis.xのxを参照) メソッド宣言時finalとは何ですか? getterとsetterは何ですか? 強化FOR MOONとは? メソッド領域、JVMメモリは? 実行時にこのトピックのために'-これはどういう意味ですか? hasnextって何ですか? Call By ValueとCall By Referenceのコアとは? 文書では、ある関数を呼び出すときに、関数のパラメータにパラメータを渡すときに、パラメータをどのように渡すかについて説明する. Callby Value:パラメータをコピーし、パラメータ に置き換えます. Call by Reference:Parameterは元のArgumnetを直接参照します.したがって,関数の動作中にパラメータの変化が引数に影響する. ArgumentとParameterの違いは? 多次元配列の1つで、配列要素であり、異なる配列を有する配列を表す.
(2 D配列は配列要素として1 D配列を持つ配列です.) Javaは2 D配列を表すタイプを提供しないので、1 D配列を使用してタグ付けされます. 構文としてマーク
1)タイプ[][]配列名;
2)タイプ配列名[];
3)タイプ[]配列名[];
図解された2 Dアレイ
例1(アレイ宣言と同時に初期化する方法)
int[][] arr = {
{10, 20, 30},
{40, 50, 60}
}
実行結果
10 20 30
40 50 60
例2(可変配列:行ごとに異なる長さの配列を要素として格納できます.)
int[][] arr = {
{10, 20},
{30, 40, 50},
{60, 70}
}
実行結果
10 20
30 40 50
60 70
振り返る
これは授業中の一日です.知らない内容が脳に注入され続け、過剰孵化を招いた.また,昨日プレイしたパリティゲームのフィードバック(1.メソッドが多すぎる2.変数名,メソッド名が大文字でエラー)として2種類得られたが,まだ1番を修正していない.まず2回改善したコードを書いて、今日の授業で新しく学んだ内容と好奇心のある内容を整理します.(++レベルも分けました.)package D3;
public class OddOrEven {
public static void main(String[] args) {
Play play = new Play();
play.inputData();
}
}
package D3;
import java.util.Scanner;
import static java.lang.Math.min;
import static java.lang.Math.pow;
public class Play {
private Scanner sc = inputPlayerName();
private int playerCapital = 100;
private int computerCapital = 120;
private int stageCount = 1;
public int inputData() {
int computerRandomNum = selectComputerRandomNum();
String playerInputOddEven = inputOddEven(sc, "홀,짝을 입력해주세요.");
int betMoney = checkBetMoney(sc, playerCapital, computerCapital);
String computerOddEven = checkOddEven(computerRandomNum);
if (playerInputOddEven.equals(computerOddEven)) {
computerCapital = computerLose(computerCapital, betMoney, "현재 상대방의 잔액은 ");
playerCapital = playerWin(playerCapital, betMoney, "현재 나의 잔액은 ");
} else {
playerCapital = playerLose(playerCapital, betMoney);
computerCapital = computerWin(computerCapital, betMoney, "현재 상대방의 잔액은 ");
}
if (stageCount == 8 && computerCapital == 0) {
playerWin(playerCapital, stageCount);
} else if (computerCapital == 0) {
stageCount++;
computerCapital = nextLevel(playerCapital, stageCount);
return inputData();
} else if (playerCapital == 0) {
playerlose(playerCapital, stageCount);
} else {
return inputData();
}
return playerCapital;
}
private static Scanner inputPlayerName() {
Scanner sc = new Scanner(System.in);
String playerName = inputOddEven(sc, "플레이어의 이름을 입력해주세요.");
System.out.println("플레이어의 이름은 " + playerName + " 입니다.");
return sc;
}
private static int selectComputerRandomNum() {
int computerRandomNum;
computerRandomNum = (int) (Math.random() * 20) + 1;
return computerRandomNum;
}
private static String inputOddEven(Scanner sc, String s) {
System.out.println(s);
return sc.next();
}
private static int checkBetMoney(Scanner sc, int playerCapital, int computerCapital) {
int validBetMoney = getInputBetMoney(sc);
while (validBetMoney != 0) {
if (validBetMoney > min(playerCapital, computerCapital)) {
System.out.println("베팅 금액을 초과하였습니다." + "\n" + min(playerCapital, computerCapital) + " " + "이하로 입력해주세요.");
validBetMoney = getInputBetMoney(sc);
} else {
break;
}
}
return validBetMoney;
}
private static int getInputBetMoney(Scanner sc) {
System.out.println("베팅 금액을 입력해주세요.");
int inputBetMoney = sc.nextInt();
return inputBetMoney;
}
private static String checkOddEven(int n) {
String computerOddEven;
if (n % 2 == 0) {
computerOddEven = "짝";
} else {
computerOddEven = "홀";
}
return computerOddEven;
}
private static int computerLose(int computerCapital, int betMoney, String s) {
computerCapital -= betMoney;
System.out.println(s + computerCapital + "입니다.");
return computerCapital;
}
private static int playerWin(int playerCapital, int betMoney, String s) {
playerCapital += betMoney;
System.out.println(s + playerCapital + "입니다.");
return playerCapital;
}
private static int computerWin(int computerCaptial, int betMoney, String s) {
computerCaptial = playerWin(computerCaptial, betMoney, s);
return computerCaptial;
}
private static int playerLose(int playerCaptial, int betMoney) {
playerCaptial = computerLose(playerCaptial, betMoney, "현재 나의 잔액은 ");
return playerCaptial;
}
private static void playerWin(int playerCapital, int i) {
System.out.println("WIN!!");
System.out.println("당신의 소지금은 " + playerCapital + " 이며, 총 " + i + "라운드 진행되었습니다.");
}
private static int nextLevel(int playerCapital, int roundCount) {
int computerCapital;
computerCapital = (int) (playerCapital * pow(1.2, roundCount));
System.out.println(roundCount + "라운드" + ">>" + "새로운 상대가 등장합니다.");
return computerCapital;
}
private static void playerlose(int playerCaptial, int roundCount) {
System.out.println("당신의 소지금은 " + playerCaptial + " 이며, 총 " + roundCount + "라운드 진행되었습니다.");
System.out.println(" - Game Over - ");
}
}
新しく学んだ内容
package D3;
public class OddOrEven {
public static void main(String[] args) {
Play play = new Play();
play.inputData();
}
}
package D3;
import java.util.Scanner;
import static java.lang.Math.min;
import static java.lang.Math.pow;
public class Play {
private Scanner sc = inputPlayerName();
private int playerCapital = 100;
private int computerCapital = 120;
private int stageCount = 1;
public int inputData() {
int computerRandomNum = selectComputerRandomNum();
String playerInputOddEven = inputOddEven(sc, "홀,짝을 입력해주세요.");
int betMoney = checkBetMoney(sc, playerCapital, computerCapital);
String computerOddEven = checkOddEven(computerRandomNum);
if (playerInputOddEven.equals(computerOddEven)) {
computerCapital = computerLose(computerCapital, betMoney, "현재 상대방의 잔액은 ");
playerCapital = playerWin(playerCapital, betMoney, "현재 나의 잔액은 ");
} else {
playerCapital = playerLose(playerCapital, betMoney);
computerCapital = computerWin(computerCapital, betMoney, "현재 상대방의 잔액은 ");
}
if (stageCount == 8 && computerCapital == 0) {
playerWin(playerCapital, stageCount);
} else if (computerCapital == 0) {
stageCount++;
computerCapital = nextLevel(playerCapital, stageCount);
return inputData();
} else if (playerCapital == 0) {
playerlose(playerCapital, stageCount);
} else {
return inputData();
}
return playerCapital;
}
private static Scanner inputPlayerName() {
Scanner sc = new Scanner(System.in);
String playerName = inputOddEven(sc, "플레이어의 이름을 입력해주세요.");
System.out.println("플레이어의 이름은 " + playerName + " 입니다.");
return sc;
}
private static int selectComputerRandomNum() {
int computerRandomNum;
computerRandomNum = (int) (Math.random() * 20) + 1;
return computerRandomNum;
}
private static String inputOddEven(Scanner sc, String s) {
System.out.println(s);
return sc.next();
}
private static int checkBetMoney(Scanner sc, int playerCapital, int computerCapital) {
int validBetMoney = getInputBetMoney(sc);
while (validBetMoney != 0) {
if (validBetMoney > min(playerCapital, computerCapital)) {
System.out.println("베팅 금액을 초과하였습니다." + "\n" + min(playerCapital, computerCapital) + " " + "이하로 입력해주세요.");
validBetMoney = getInputBetMoney(sc);
} else {
break;
}
}
return validBetMoney;
}
private static int getInputBetMoney(Scanner sc) {
System.out.println("베팅 금액을 입력해주세요.");
int inputBetMoney = sc.nextInt();
return inputBetMoney;
}
private static String checkOddEven(int n) {
String computerOddEven;
if (n % 2 == 0) {
computerOddEven = "짝";
} else {
computerOddEven = "홀";
}
return computerOddEven;
}
private static int computerLose(int computerCapital, int betMoney, String s) {
computerCapital -= betMoney;
System.out.println(s + computerCapital + "입니다.");
return computerCapital;
}
private static int playerWin(int playerCapital, int betMoney, String s) {
playerCapital += betMoney;
System.out.println(s + playerCapital + "입니다.");
return playerCapital;
}
private static int computerWin(int computerCaptial, int betMoney, String s) {
computerCaptial = playerWin(computerCaptial, betMoney, s);
return computerCaptial;
}
private static int playerLose(int playerCaptial, int betMoney) {
playerCaptial = computerLose(playerCaptial, betMoney, "현재 나의 잔액은 ");
return playerCaptial;
}
private static void playerWin(int playerCapital, int i) {
System.out.println("WIN!!");
System.out.println("당신의 소지금은 " + playerCapital + " 이며, 총 " + i + "라운드 진행되었습니다.");
}
private static int nextLevel(int playerCapital, int roundCount) {
int computerCapital;
computerCapital = (int) (playerCapital * pow(1.2, roundCount));
System.out.println(roundCount + "라운드" + ">>" + "새로운 상대가 등장합니다.");
return computerCapital;
}
private static void playerlose(int playerCaptial, int roundCount) {
System.out.println("당신의 소지금은 " + playerCaptial + " 이며, 총 " + roundCount + "라운드 진행되었습니다.");
System.out.println(" - Game Over - ");
}
}
気になること(今週末整理)
Q1. 2 Dアレイとは
(2 D配列は配列要素として1 D配列を持つ配列です.)
1)タイプ[][]配列名;
2)タイプ配列名[];
3)タイプ[]配列名[];
図解された2 Dアレイ
例1(アレイ宣言と同時に初期化する方法)
int[][] arr = {
{10, 20, 30},
{40, 50, 60}
}
実行結果
10 20 30
40 50 60
例2(可変配列:行ごとに異なる長さの配列を要素として格納できます.)
int[][] arr = {
{10, 20},
{30, 40, 50},
{60, 70}
}
実行結果
10 20
30 40 50
60 70
Reference
この問題について(コード四角ココアjava#6), 我々は、より多くの情報をここで見つけました https://velog.io/@dragon9265/Study6-코드스쿼드-코코아자바テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol