코드 그라데이션
후발대 2일차 본문
형변환, 전위연산자/후위연산자, ==과 equals, 배열, ArrayList, 실습
- 아스키코드
- 형변환 (명시적 형변환이란?)
- (묵시적 형변환이란?)
- 삼항연산자
- 전위연산자/ 후위연산자
- == equals
- 배열
- ArrayList
- Random 클래스
- 거꾸로 출력하기
- 최소값 구하기
수업 내용
package com.sparta.hbd04.prac100;
import java.util.*;
public class Prac02 {
public static void main(String[] args) {
//아스키코드
//묵시적 형변환
//자료형의 크기가 서로 다른 자료의 연산 결과는 크기가 큰 자료형으로 자동 변환된다.
System.out.println(5 + " / " + 3 + " = " + 5 / 3);
System.out.println(5 + " / " + 3 + " = " + 5 / 3.);
System.out.println('A' + " + " + 32 + " = " + ('A' + 32));
System.out.println('a' + " - " + 32 + " = " + ('a' - 32));
System.out.println("===============================");
//명시적 형변환 => casting
//프로그래머가 그 순간의 자료형을 지정할 수 있다.
//아래 주석코드는 궁금하면 해보시고 코드를 이해하셔도...! 좋습니다.
// System.out.println(5 + " / " + 3 + " = " + (int) 5 / 3.);
System.out.println(5 + " / " + 3 + " = " + (double) 5 / 3);
System.out.println('A' + " + " + 32 + " = " + (char) ('A' + 32));
System.out.println('a' + " - " + 32 + " = " + (char) ('a' - 32));
System.out.println("===============================");
//삼항연산자
int c = 5;
// 조건식 ? 참 일때 수행코드 : 거짓일때 수행코드;
String result = (c < 10) ? "10보다 작습니다." : "10보다 큽니다.";
System.out.println(result);
// 실습. 01
// 삼항연산자를 이용하여 12시 보다 작으면 오전, 크면 오후를 출력
int hour = 10;
String result1 = (hour < 12) ? "오전입니다." : "오후입니다.";
System.out.println(result1);
// 실습 1 (같이해봅시다)
// 문자를 숫자로
Scanner sc = new Scanner(System.in);
System.out.println("알파벳을 입력하세요: ");
// char alpha = sc.nextLine().charAt(0);
char alpha = sc.nextLine().charAt(0);
int ialpha = (int) alpha;
System.out.println(ialpha);
System.out.println("=================");
String str = "안녕하세요";
System.out.println(str.charAt(1));
int a = 10;
int b;
b = a++; // 연산자우선순위가 낮음
// // 후위증감연산자
System.out.println(b);
System.out.println("a=" + a + " b=" + b);
b = ++a; // 우선순위 높음
// 전위증감연산자
System.out.println("a=" + a + " b=" + b);
// == 과 equals
//reference type
String text1 = "sample"; //리터럴 타입으로 생성
String text2 = text1;
String text3 = new String("sample"); //new 연산자를 이용한 방식
String text4 = new String("sample");
System.out.println(text1 == text2); //true
System.out.println(text1.equals(text2)); //true
System.out.println(text3 == text4); //false
System.out.println(text3.equals(text4)); //true
// 배열
// 원격강의자료 복습
// 배열요소에 값을 넣으려면 어떻게 해야할지 작성을 해보세요.
// 이 문제는 배열을 생성한 후에 데이터 값을 입력하는 방법에 대해 아는 문제 입니다.
//[1]배열선언
int[] num = new int[5];
//[2] 선언한 배열공간에 값 입력하기
num[0] = 3;
// num[0] = 35; //배열변수[인덱스] = 값 의 형태로 기존 요소의 값을 덮어쓸 수 있습니다.
num[1] = 11;
num[2] = 22;
num[3] = 33;
num[4] = 44;
//[3] 값출력하기
System.out.println(num[0]);
System.out.println(num[1]);
System.out.println(num[2]);
System.out.println(num[3]);
System.out.println(num[4]);
System.out.println(num[num.length - 1]);
// 길이를 구할때
System.out.println(num.length);
// 실습
String[] seasons = {"봄", "여름", "가을", "겨울"};
System.out.println(seasons);
System.out.println(Arrays.toString(seasons));
System.out.println(seasons[seasons.length - 1]);
//arraylist
/* 정보를 묶을 때 List 라는 녀석을 사용합니다. 세 가지를 기억하시면 돼요.
1. 순서가 중요한 녀석이에요!
2. 같은 자료형만 넣을 수 있어요
3. 넣을 때는 add, 조회할 때는 get, 제거할 때는 remove를 사용합니다.
*/
List<String> fruits = new ArrayList<>();
fruits.add("감");
fruits.add("배");
fruits.add("감");
fruits.add("딸기");
fruits.add("수박");
fruits.add("메론");
fruits.add("수박");
fruits.add("딸기");
fruits.add("메론");
fruits.add("수박");
fruits.add("메론");
fruits.add("수박");
fruits.add("감");
System.out.println(fruits);
// 과일 목록 차례대로 인쇄하기 - 반복문 없이
System.out.println(fruits.get(0));
System.out.println(fruits.get(1));
System.out.println(fruits.get(2));
System.out.println(fruits.get(3));
System.out.println(fruits.get(4));
System.out.println(fruits.get(5));
System.out.println(fruits.get(6));
System.out.println(fruits.get(7));
System.out.println(fruits.get(8));
System.out.println(fruits.get(9));
System.out.println(fruits.get(10));
System.out.println(fruits.get(11));
System.out.println(fruits.get(12));
fruits.remove(0);
System.out.println(fruits.get(0));
// 과일 목록 차례대로 인쇄하기 - 반복문과 함께
// for (int i=0; i<13; i++) {
for (int i = 0; i < 12; i++) {
String fruit = fruits.get(i);
System.out.println(fruit);
}
// 매번 13개, 14개, 12개.. 개수 세어줘야 할까요? ,
// List 타입에서는 size가 길이를 아는 함수
for (int i = 0; i < fruits.size(); i++) {
String fruit = fruits.get(i);
System.out.println(fruit);
}
// 참고) 아마 여러분이 자바 코드를 작성하면서 보게 될 가장 많은 오류중의 하나는
// ArrayIndexOutOfBoundsException
// 실습 1
System.out.println("숫자 5개를 띄어쓰기로 구분하여 입력하세요: ");
int[] value = new int[5];
for (int i = 0; i < 5; i++) {
value[i] = sc.nextInt();
}
for (int i = 4; i >= 0; i--) {
System.out.println(value[i]);
}
// 실습 2 최소값찾기 (숙제)
// 랜덤으로 정수 10개 저장
// 최소값을 찾아주세요!-> 몇개?
int[] datas = new int[10];
Random rand = new Random();
for (int i = 0; i < 10; i++) {
datas[i] = rand.nextInt(10) + 1;
System.out.println(datas[i]);
}
int min = datas[0];
for (int i = 1; i < 10; i++) {
if (min > datas[i]) {
min = datas[i];
}
}
System.out.println("min=" + min);
// Math.random(): 0 이상이고 1 미만인 무작위수를 발생시킨다.
System.out.println((int) (Math.random() * 6) + 1);
// (1~6 중에 하나 랜덤. int형이므로 )
// Random 클래스의 객체를 사용한다.
Random random = new Random();
System.out.println(random.nextDouble());
System.out.println(random.nextInt());
System.out.println(random.nextInt(6) + 1);
}
}
728x90
Comments