일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- Absolute
- AGI
- ai
- AI agents
- AI engineer
- AI researcher
- ajax
- algorithm
- Algorithms
- aliases
- Array 객체
- ASI
- bayes' theorem
- Bit
- Blur
- BOM
- bootstrap
- canva
- challenges
- ChatGPT
- Today
- In Total
A Joyful AI Research Journey🌳😊
[25] 230203 Java Ch. 4 조건문과 반복문: 1. 조건문: if문, switch문 [K-디지털 트레이닝 25일] 본문
[25] 230203 Java Ch. 4 조건문과 반복문: 1. 조건문: if문, switch문 [K-디지털 트레이닝 25일]
yjyuwisely 2023. 2. 2. 13:02230203 Thu 25th class
Ch. 4 조건문과 반복문
진도: p. 134 ~ (교재: 혼자 공부하는 자바, 저자: 신용권)
오늘 배운 것 중 기억할 것을 정리했다.
지난 수업 때 배운 것 중 다시 기억할 것
Scanner
참고: https://www.w3schools.com/java/java_user_input.asp
Java User Input
The Scanner class is used to get user input, and it is found in the java.util package.
To use the Scanner class, create an object of the class and use any of the available methods found in the Scanner class documentation. In our example, we will use the nextLine() method, which is used to read Strings:
예제)
import java.util.Scanner; // import the Scanner class
class Main {
public static void main(String[] args) {
Scanner myObj = new Scanner(System.in);
String userName;
// Enter username and press Enter
System.out.println("Enter username");
userName = myObj.nextLine();
System.out.println("Username is: " + userName);
}
}
결과)
Enter username
Hi
Username is: Hi
Input Types
In the example above, we used the nextLine() method, which is used to read Strings. To read other types, look at the table below:
Method | Description |
nextBoolean() | Reads a boolean value from the user |
nextByte() | Reads a byte value from the user |
nextDouble() | Reads a double value from the user |
nextFloat() | Reads a float value from the user |
nextInt() | Reads a int value from the user |
nextLine() | Reads a String value from the user |
nextLong() | Reads a long value from the user |
nextShort() | Reads a short value from the user |
예제)
import java.util.Scanner;
class Main {
public static void main(String[] args) {
Scanner myObj = new Scanner(System.in);
System.out.println("Enter name, age and salary:");
// String input
String name = myObj.nextLine();
// Numerical input
int age = myObj.nextInt();
double salary = myObj.nextDouble();
// Output input by user
System.out.println("Name: " + name);
System.out.println("Age: " + age);
System.out.println("Salary: " + salary);
}
}
결과)
Enter name, age and salary:
Hi
10
120000
Name: Hi
Age: 10
Salary: 120000
Ch. 4 조건문과 반복문
책의 목차
04-1 조건문: if문, switch문
04-2 반복문: for문, while문, do-while문
4.1 조건문: if문, switch문
1) if문 p. 135
if (조건식){...}else{...}
조건식에는 true 또는 false 값을 산출할 수 있는 연산식이나, boolean 타입 변수가 올 수 있다.
조건식이 true이면 블록을 실행하고, false이면 블록을 실행하지 않는다.
괄호 {} 블록은 생략하지 않고 작성하는 것을 추천한다.
예제)
public class P136IfExample {
public static void main(String[] args) {
int score = 93;
if(score>=90) {
System.out.println("점수가 90보다 큽니다.");
System.out.println("등급은 A입니다.");
}
if(score<90)
System.out.println("점수가 90보다 작습니다."); //중괄호 블록이 없어 여기까지 영향을 미친다.
System.out.println("등급은 B입니다."); //들여쓰기만 되었을 뿐 if문과 관련이 없으므로 출력된다.
}
}
결과)
점수가 90보다 큽니다.
등급은 A입니다.
등급은 B입니다.
2) if-else문 p. 136
if (조건식){...}else{...}
조건식이 true가 되면 if 중괄호 내부를 실행하고, false가 되면 else 중괄호 내부실행한다.
예제)
public class P137IfElseExample {
public static void main(String[] args) {
int score = 93;
if(score>=90) {
System.out.println("점수가 90보다 큽니다.");
System.out.println("등급은 A입니다.");
}else {
System.out.println("점수가 90보다 작습니다.");
System.out.println("등급은 B입니다.");
}
}
}
결과)
점수가 90보다 큽니다.
등급은 A입니다.
3) if-else if-else p. 138
if (조건식1) {...} else if(조건식2) {...} else {...}
조건식 1이 true가 되면 if 중괄호 내부를 실행하고, 조건식2가 true가 되면 else if 중괄호 내부를 실행한다.
조건식1과 조건식2과 모두 false가 되면 else 중괄호 내부가 실행된다.
if (조건식1) {
//조건식1이 true
실행문 A
} else if (조건식2) {
//조건식2가 true
실행문 B
} else {
실행문 C
}
실행문 D
1. 조건식1이 true이면 A→D
2. 조건식1이 false이면
2.1 조건식2가 true이면 B→D
2.2 조건식2가 false이면 C→D
예제)
public class P139IfElseIfExample {
public static void main(String[] args) {
int score = 75;
if(score >= 90) {
System.out.println("점수가 100~90입니다.");
System.out.println("등급은 A입니다.");
}else if(score >= 80) {
System.out.println("점수가 80~90입니다.");
System.out.println("등급은 B입니다.");
}else if(score >= 70) {
System.out.println("점수가 70~80입니다.");
System.out.println("등급은 C입니다.");
}else {
System.out.println("점수가 60~70입니다.");
System.out.println("등급은 D입니다.");
}
}
}
결과)
점수가 70~80입니다.
등급은 C입니다.
랜덤 Math.random()
ex) 회원 가입 때 숫자 인증
start부터 시작하는 n개의 정수 중에서 임의의 정수 하나를 얻기 위한 연산식
int num = (int) (Math.random() * n) + start;
예제 1) 로또 번호 (1~45) 하나를 뽑기 위해서 사용하는 연산식
int num = (int) (Math.random() * 45) + 1;
예제 1.1) 랜덤 번호 6개 만든다.
import java.util.Random;
public class P140Lottery {
public static void main(String[] args) {
Random random = new Random(); //랜덤 함수 선언
int createNum = 0; //1자리 난수
String ranNum = ""; //1자리 난수 형변환 변수
int letter = 6; //난수 자릿수:6
String resultNum = ""; //결과 난수
for (int i=0; i<letter; i++) {
createNum = random.nextInt(46); //1부터 45까지 올 수 있는 1자리 난수 생성
ranNum = Integer.toString(createNum); //1자리 난수를 String으로 형변환
resultNum += "["+ranNum+"]"; //생성된 난수(문자열)을 원하는 수(letter)만큼 더하며 나열
}
System.out.println("랜덤 번호 6개: "+resultNum);
}
}
결과)
랜덤 번호 6개: [33][25][31][22][35][2]
예제 2)
public class P140IfDiceExample {
public static void main(String[] args) {
// 주사위를 굴려서 나올 수 있는 1~6 중에서 하나의 수를 무작위로 뽑아서 출력
int num = (int)(Math.random() * 6) + 1; //6개의 정수, start=1
//주사위의 숫자(num)가 1이면
if(num==1) {
//1번이 나왔습니다. 라고 출력
System.out.println("1번이 나왔습니다.");
} else if(num==2) {
System.out.println("2번이 나왔습니다.");
} else if(num==2) {
System.out.println("3번이 나왔습니다.");
} else if(num==2) {
System.out.println("4번이 나왔습니다.");
} else if(num==2) {
System.out.println("5번이 나왔습니다.");
} else {
System.out.println("6번이 나왔습니다.");
}
}
}
결과)
6번이 나왔습니다.
4) switch문 p. 141
switch(변수){case 값1: ... case 값2: ... default: ... }
변수의 값이 값1이면 첫 번째 case 코드를 실행하고, 값2이면 두 번째 case 코드를 실행한다. 값1과 값2가 모두 아니면 default 코드를 실행한다. default는 생략 가능하다.
switch( 변수 ) {
case 값1: //변수가 값1일 경우
실행문A
break;
case 값2: //변수가 값2일 경우
실행문B
break;
default: //변수가 값1,값2 모두 아닐 경우 (생략 가능)
실행문C
}
예제 1)
public class P143SwitchExample {
public static void main(String[] args) {
// 주사위를 굴려서 나올 수 있는 1~6 중에서 하나의 수를 무작위로 뽑아서 출력
int num = (int)(Math.random() * 6) + 1; //6개의 정수, start=1
switch(num) {
case 1: //주사위의 숫자(num)가 1이면
//1번이 나왔습니다. 라고 출력
System.out.println("1번이 나왔습니다.");
break;
case 2:
System.out.println("2번이 나왔습니다.");
break;
case 3:
System.out.println("3번이 나왔습니다.");
break;
case 4:
System.out.println("4번이 나왔습니다.");
break;
case 5:
System.out.println("5번이 나왔습니다.");
break;
default:
System.out.println("6번이 나왔습니다.");
break;
}
}
}
결과)
3번이 나왔습니다.
case 끝에 break가 붙어 있는 이유는 다음 case를 실행하지 않고 switch 문을 빠져나가기 위해서이다.
break가 없다면 다음 case가 연달아 실행된다.
마무리
4가지 키워드로 끝내는 핵심 포인트 p. 145
1) if문 if (조건식){...}else{...}
조건식이 true가 되면 중괄호 내부를 실행한다.
2) if-else문: if (조건식){...}else{...}
조건식이 true가 되면 if 중괄호 내부를 실행하고, false가 되면 else 중괄호 내부를 실행한다.
3) if-else if-else: if (조건식1) {...} else if(조건식2) {...} else {...}
조건식1이 true가 되면 if 중괄호 내부를 실행하고, 조건식2가 true가 되면 else if 중괄호 내부를 실행한다.
조건식1과 조건식2가 모두 false가 되면 else 중괄호 내부가 실행된다.
4) switch문: switch(변수){case 값1: ... case 값2: ... default: ... }
변수의 값이 값1이면 첫 번째 case 코드를 실행하고, 값2이면 두 번째 case 코드를 실행한다.
값1과 값2가 모두 아니면 default 코드를 실행한다.
//switch문
switch( 변수 ){
//변수가 값1일 경우
case 값1:
실행문A
break;
//변수가 값2일 경우
case 값2:
실행문B
break;
//변수가 값1, 값2 모두 아닐 경우
default;
실행문C
}