[LIKELION] 220922

고관운·2022년 9월 22일
0

회고

😭 느낀점

  • 전에 배운 내용이 있었지만, 기억이 나지 않거나 실수하는 부분이 있었다.
    (switch case문의 break, Class 내부의 this 활용)

😁 목표

  • 과제 2개 완료하기
  • 프로그래머스 코딩 연습 (정렬, 완전탐색, 힙)

01. 자바-05-선택문if

if문

if문

괄호 안에 참 거짓을 결정하는 조건이 들어감.
실행문이 한줄일 경우, 중괄호 생략 가능

if else문

if문 조건이 참일 경우, if문의 실행문을 실행한 후 탈출
거짓이면 else문 실행

else if문

if else문과 다르게 else문에도 조건 넣기 가능

switch문

switch문

괄호안의 변수 값에 맞는 case문 실행
🔴 break문의 중요성
각 case문 마지막에 break넣기
(넣지 않는다면 하위 case문도 실행됨)

실습

입력받는 월의 계절을 출력하기

import java.util.Scanner;

public class practice_if {

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		
		int month = sc.nextInt();
		
		switch(month) {
		case 12:
		case 1:
		case 2:
			System.out.println("겨울");
			break;
		case 3:
		case 4:
		case 5:
			System.out.println("봄");
			break;
		case 6:
		case 7:
		case 8:
			System.out.println("여름");
			break;
		case 9:
		case 10:
		case 11:
			System.out.println("가을");
			break;
		default:
			System.out.println("올바른 입력이 아닙니다.");
		}
	}
}

🟢 해당 코드의 포인트는 break를 적절하게 이용했다는 것이다.

가위바위보게임

import java.util.Scanner;

public class practice_if {

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		
		System.out.print("가위(0), 바위(1), 보(2) : ");
		int user = sc.nextInt();
		int computer = (int) (Math.random() * 3);
		
		if (user == computer)
            System.out.println("인간과 컴퓨터가 비겼음");
        else if (user == (computer + 1) % 3) // 0은 1한테 지고 1은 2한테, 2는 0한테 진다.
            System.out.println("인간: " + user + " 컴퓨터: " + computer + "   인간 승리");
        else
            System.out.println("인간: " + user + " 컴퓨터: " + computer + "   컴퓨터 승리");
	}
}

🟢 가위(0), 바위(1), 보(2)의 경우, 승리여부가 숫자 1의 차이로 결정남
이를 user == (computer + 1) % 3) 의 조건식으로 간단하게 표현함


02. 자바-07-클래스와객체-1

클래스

클래스와 객체

클래스 : 객체를 만들어 내기 위한 틀
객체 : 클래스에서 정의한 것을 바탕으로 실제 메모리에 할당된 것

클래스 정의 후 객체 생성

class Circle {
	int radius;
	String color;
	
	double calcArea() {
		return Math.PI * radius * radius;
	}
}

public class CircleTest {

	public static void main(String[] args) {
		Circle obj;
		obj = new Circle();
		obj.radius = 100;
		obj.color = "blue";
		double area = obj.calcArea();
		
		System.out.println("원의 면적=" + area);
	}
}
  • new Circle() : 객체 생성
  • obj.radius = 100 : 객체의 변수 접근
  • obj.calcArea() : 객체의 함수 접근

실습

함수 호출 예제

public class practice7_2 {

	public static void main(String[] args) {
		System.out.println("프로그램의 시작");
		hiEveryone(12);
		hiEveryone(13);
		System.out.println("프로그램의 끝");
	}
	
	public static void hiEveryone(int age) {
		System.out.println("좋은 아침입니다.");
		System.out.println("제 나이는 " + age + "세 입니다.");
	}
}

반지름이 10인 원의 넓이를 함수 호출로 구하라

public class practice7_3 {

	public static void main(String[] args) {
		double area = circleArea(10);
		
		System.out.println(area);
	}
	
	public static double circleArea(int radius) {
		return Math.PI * radius * radius;
	}
}

학생 이름, 학번, 나이를 할당하고 출력

class Student {
	String name;
	int idNum;
	int age;
	
	public void printInformation() {
		System.out.println("학생의 이름: " + name);
		System.out.println("학생의 학번: " + idNum);
		System.out.println("학생의 나이: " + age);
	}
}

public class practice7_p18 {

	public static void main(String[] args) {
		Student student1 = new Student();
		student1.name = "Kim";
		student1.idNum = 20180001;
		student1.age = 20;
		
		student1.printInformation();
	}
}

사각형 넓이 구하기 (할당 및 넓이 계산 모두 함수 사용)

class Rectangle {
	double width;
	double height;
	
	public void setWidth(double width) {
		this.width = width;
	}
	
	public void setHeight(double height) {
		this.height = height;
	}
	
	public double getArea() {
		return width * height;
	}
}

public class practice7_p18 {

	public static void main(String[] args) {
		Rectangle rec = new Rectangle();
		Rectangle rec2;
		rec2 = rec;
		
		rec.setWidth(10);
		rec.setHeight(10);
		
		System.out.println(rec.getArea());
		System.out.println(rec2.getArea());
	}
}

🔴 여기서 this는 해당 클래스의 변수를 말함
🔴 rec2 = rec 은 같은 주소를 갖고 있기 때문에 rec객체의 변수값을 변경하면 rec2값도 변경됨

0개의 댓글