Javaトレーニングまとめ3日目第4話
20444 ワード
1.配列
大量のデータの平均値を簡単に求め,配列を用いて大量の変数を一度に処理することができる.
同じタイプの複数のデータを1つのアレイに順次格納します.
例)1-1
int math = 20;
int korean = 30;
int science = 40;
int english = 50;
int society = 80;
int japanese = 50;
int sum = scores[0] + scores[1] +scores[2] +scores[3] +scores[4];
int sum = 0;
for (int i = 0; i < scores.length; i++) {
sum = sum + scores[i];
}
例1−1に示すように、1つのカテゴリに様々な変数が宣言されているため、無効な資料構造タイプである.例)1-2
int[] score = new int[5];
int count = score.length;
System.out.println(score[0]);*/
int[] score1 = new int[] {20,30,40,50,60};
int[] score2 = {20,30,40,50,60};
例1-2に示すように、1-1の例のようにデータの追加時の各変数を宣言する必要はありません.2.for文/通常for文&強化for文
通常のfor文は条件文の初期値、条件、カウンタのインクリメント方法を設定し、強化されたfor文はJava独自のforeach文を使用します.
効率を上げることができます.
foreach
for each構文を使用する場合、for each構文を使用して集合データを処理する場合、集合を変更することはできません.
(インデックス:オブジェクト)オブジェクトのサイズに応じて繰り返し回数を決定します.foreach文は通常のfor文よりも柔軟です.
例)2-1
for (int value:moneyList2 ) {
System.out.println(value);
3.Garbage Collection(ゴミ収集)
プログラム開発では無効なメモリ浪費(Garbage)が発生し、C言語ではfree()という関数が直接使用されます.
メモリは解放されますが、Javaでは開発者が直接メモリを解放することはありません.
Javaはゴミ収集(GC,ゴミ収集)というデバイスが使用しなくなったメモリをクリーンアップした.
練習問題
// 4-1 practice exercise
/*
다음 조건에 맞는 각 배열을 준비하는 프로그램을 작성하시오. 값의 초기화는 필요 없음.
1. int형 값을 4개 담을 수 있는 배열 points
2. double 형 값을 5개 담을 수 있는 배열 weights
3. boolean 형 값을 3개 담을 수 있는 배열 answers
4. String형 값을 3개 담을 수 있는 배열 names
*/
int point[] = new int[4];
double weight[] = new double[5];
boolean answers[] = new boolean[3];
String[] names = new String[3];
System.out.println(answers);
// 4-2 practice exercise !
/*
다음 조건에 맞는 프로그램을 작성하시오.
1. 3개의 계좌 잔액 “121902”, “8302”, “55100” 이 담겨 있는 int 형 배열 moneyList 를 선언하시오
2. 그 배열의 요소를 1개씩 for 문으로 꺼내서 화면에 표시하시오
3. 같은 배열 요소를 foreach 문으로 1개씩 꺼내서 화면에 표시하시오
*/
int moneyList1[] = {121902};
int moneyList2[] = {8302};
int moneyList3[] = {55100};
//formal
for (int i = 0; i < moneyList1.length; i++) {
System.out.println(moneyList1[i]);
}
for (int i = 0; i < moneyList2.length; i++) {
System.out.println(moneyList2[i]);
}
for (int i = 0; i < moneyList3.length; i++) {
System.out.println(moneyList3[i]);
}
//향상된 for 문
for (int value:moneyList1 ) {
System.out.println(value);
}
for (int value:moneyList2 ) {
System.out.println(value);
}
for (int value:moneyList3 ) {
System.out.println(value);
//4-3 practice exercise !
/*
각 라인에서 발생하는 예외의 이름을 답하시오.
*/
int [] counts = null;
float[] heights = {171.3F , 175.0F};
System.out.println(counts[1]);
System.out.println(heights[2]);
// 값을 담고있는 수가 2개 이고 인덱스 값이 초과 또는 같기 때문에 에러발생!
잘못된 인덱스를 사용해서 배열에 접근했다는 것을 알려주기 위한 예외.
인덱스는 0보다 크거나 배열의 사이즈보다 작아야 한다.
System.out.println(counts[1]);
空の値であるため、countsを配列に保存できません.(Cannot load from int array because "counts"is null)
nullは何もないことを示します.(0またはスペース:")
すべての参照タイプのデフォルト値はnullです.
nullは有効なオブジェクトインスタンスではないため、メモリが割り当てられていません.
System.out.println(heights[2]);
//値を含む数が2で、インデックス値が以上であるか等しいため、エラーが発生しました.
無効なインデックスを使用して配列にアクセスすることをユーザーに通知する例外です.
インデックスは0より大きいか、配列より小さいサイズでなければなりません.
// 4-4 practice exercise !
/*
다음 4개의 조건에 맞는 “숫자 맞추기 퀴즈" 프로그램을 작성 하시오.
1. 3개짜리 int형 배열 numbers를 준비하시오. 이 때 초기화는 각각 “3”, “4”, “9”로 합니다.
2. 화면에 “1자리의 숫자를 입력 해 주세요" 라고 표시합니다
3. 다음 코드를 사용해 키보드로부터 숫자를 입력 받아, 변수 input 에
대입합니다
4. input값이 3, 4, 9 중 하나와 같다면 “정답!” 이라고 표시합니다
*/
int[] numbers = {3,4,9};
System.out.println("한자리 숫자를 입력해 주세요 :");
Scanner sc = new Scanner(System.in);
int input = sc.nextInt();
for (int num: numbers ) {
if(input == num){
System.out.println("정답!");
}else {
System.out.println("틀렸습니다!");
}
break;
}
Reference
この問題について(Javaトレーニングまとめ3日目第4話), 我々は、より多くの情報をここで見つけました https://velog.io/@hermeak1/Java교육-내용정리-3일차-4강テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol