Chapter 2 - Java
1. 제어문- if
1-1. if 구문
조건식의 결과에 따라 수행문이 실행되는 조건문
if(조건식) {
수행문;
}else{
수행문2;
}
1-2. if - else if 구문
public static void main(String[] args) {
System.out.println("나이를 입력하시오 :");
Scanner scanner = new Scanner(System.in); // 입력을 할수 있게 함
int age = scanner.nextInt();
int charge = 0;
if(age < 8) {
charge = 1000;
}else if(age < 14){
charge = 1500;
}else if(age < 20) {
charge = 2000;
}else {
charge = 3000;
}
System.out.println("나이 : "+ age);
System.out.println("요금 : "+ charge);
}
1-3. case 구문
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("월 : ");
int month = scanner.nextInt();
int day;
switch(month) {
case 1: case 3: case 5: case 7: case 8: case 10: case 12:
day = 31;
break;
case 2:
day = 28;
break;
case 4: case 6: case 11:
day = 30;
break;
default :
System.out.println("Error");
day = 0;
}
System.out.println(month +"월은" + day + "입니다.");
}
응용) 2월은 윤년인 경우로 나누고 외부 클래스에서 사용하지 말도록하며, boolean을 사용해라
public class MyDate{
private int day;
private int month;
private int year;
private boolean isValid = true;
public MyDate(int day, int month, int year) {
setYear(year);
setMonth(month);
setDay(day);
}
public int getDay() {
return day;
}
public void setDay(int day) {
switch(month) {
case 1: case 3: case 5: case 7: case 8: case 10: case 12:
if (day <0 || day >31) {
isValid = false;
}
else {
this.day = day;
}
break;
case 4: case 6: case 9: case 11:
if (day <0 || day >30) {
isValid = false;
}
else {
this.day = day;
}
break;
case 2:
if (( ( year % 4 ==0 && year % 100 !=0 ) || year % 400 ==0)){ //윤년인 경우
if (day <0 || day >29) {
isValid = false;
}
else {
this.day = day;
}
}
else {
if (day <0 || day >28) {
isValid = false;
}
else {
this.day = day;
}
}
break;
default:
isValid = false;
}
}
public int getMonth() {
return month;
}
public void setMonth(int month) {
if( month <1 || month >12) {
isValid = false;
}
else {
this.month = month;
}
}
public int getYear() {
return year;
}
public void setYear(int year) {
if (year > Calendar.getInstance().get(Calendar.YEAR)) {
isValid = false;
}
else {
this.year = year;
}
}
public String isValid() {
if(isValid) {
return year + "년" + month + "월" + day + "일" + "입니다.";
}
else {
return "유효하지 않은 날짜입니다.";
}
}
}
public static void main(String[] args) {
MyDate date1 = new MyDate(29, 2, 2000);
System.out.println(date1.isValid());
MyDate date2 = new MyDate(2, 100, 2006);
System.out.println(date2.isValid());
}
( 부가 설명 )
public
, private
, protected
는 해당 멤버들의 접근을 어떻게 하느냐를 지정하는 것입니다.
예를들어, public
은 프로젝트 전체에서 접근이 가능하고
protected
는 현재클래스와 상속클래스에서 접근이 가능합니다.
private
는 현재 클래스에서만 접근이 가능합니다.
private
를 사용하려면 getters & setters
설정을 해주어야 됩니다.
getters & setters
설정하는 방법
-> (private)있는 화면에 마우스 오른쪽 클릭 -> source -> getters & setters -> generate
instance of
public boolean equals(Object obj){
if(obj instance of student){
Student std = (Student)obj;
return(this.student == std)
}
- 객체가 특정 클래스로부터 상속된 객체인지 판별해주는 연산자
2. 반복문 - while
2-1. while
public class WhileExample {
public static void main(String[] args) {
int input;
int sum = 0;
Scanner scanner = new Scanner(System.in);
System.out.println("갑을 입력하시오 : ");
input = scanner.nextInt();
while(input != 0) {
System.out.println("갑을 입력하시오 : ");
sum += input;
input = scanner.nextInt();
}
System.out.println(sum);
}
}
Scanner
로 입력 값을 받아 0
을 입력 받을 때, while 반복문이 끝이 나고 입력 받은 수의 합으로 결과 값을 받습니다.
2-2. do - while
public class DoWhileExample {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int input;
int sum = 0;
do {
System.out.println("값을 입력하시오 : ");
input = scanner.nextInt();
sum += input;
}while(input !=0);
System.out.println(sum);
}
}
- while은 조건이 맞아야 수행이 돌아갑니다.
- do while은 먼저 수행1번(do) 하고 조건(while)을 뒤에서 체크합니다.
Example)) Scanner로 입력 받아 구구단을 만드시오.
public class NestedLoop {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int dan = 0;
int num = 0;
while(dan < 10) {
num = 1; // 숫자를 1로 초기화 시켜줍니다.
System.out.println(" 숫자를 입력 하시오: ");//scanner 입력 값을 받는다.
dan = scanner.nextInt();
while(num < 10) { //
System.out.println(dan + "x" + num + "=" + dan * num);
num++;
}
System.out.println();
dan++;
}
}
}
3. 반복문 - For
3-1. For 구문
- 반복문 중 가장 많이 사용합니다.
- 일정 횟수에 기반한 반복을 구현할 때 효율적입니다.
public class ForExample {
public static void main(String[] args) {
int sum = 0;
for(int num = 0; num < 11; num++) {
sum += num;
}
System.out.println(sum);
}
}
결과 값 : 55
3-2. For-continue문
public class ContinueExample {
public static void main(String[] args) {
for(int num = 1; num <= 100; num++) {
if((num % 3) != 0) continue;
System.out.println(num);
}
}
}
- continue 반복의 수행 중 조건문과 조건이 맞는 경우 이후 블록 내부의 다른 수행문을 수행하지 않습니다.
3-3. For-Break문
public class BreakExample {
public static void main(String[] args) {
int sum = 0;
for(int num = 0; ; num++) {
sum += num;
if(sum > 100)break;
}
System.out.println(sum);
System.out.println(num);
}
}
결과 값 : 105, 14
- 감싸고 있는 블록의 제어를 빠져나오는 기능
- 반복문, 조건문, switch-case 등과 같이 쓰이며 현재 수행하고 있던 블록에서 수행을 중지하고 외부로 제어가 이동합니다.
- 반복문과 같이 사용하면 특정 조선일 때 반복을 중지 하는 기능을 구현 할수 있습니다.
Author And Source
이 문제에 관하여(Chapter 2 - Java), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@dlghwns82/Chapter2저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)