괄호 안에 참 거짓을 결정하는 조건이 들어감.
실행문이 한줄일 경우, 중괄호 생략 가능
if문 조건이 참일 경우, if문의 실행문을 실행한 후 탈출
거짓이면 else문 실행
if else문과 다르게 else문에도 조건 넣기 가능
괄호안의 변수 값에 맞는 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)
의 조건식으로 간단하게 표현함
클래스
: 객체를 만들어 내기 위한 틀
객체
: 클래스에서 정의한 것을 바탕으로 실제 메모리에 할당된 것
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 + "세 입니다.");
}
}
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값도 변경됨