728x90
DAY2. 키워드
- 조건문 (if, switch)
- random함수
- 반복문 (for, while, do-while)
- Scanner
- 줄 정돈 : ctrl+shift+f
- 단축키 확인 : Help > Show Active Keybindings
1-1. 조건식
- true또는 false값을 산출할 수 있는 연산식
- boolean 변수
- 조건식이 true이면 블록 실행하고 flase이면 블록 실행하지 않음
1-2. if문
- 조건식의 결과에 따라 { } 블록을 실행할지 결정할 때 사용한다.
- 실행문이 하나면 블록을 쓰지 않아도 된다.
private static void ifTest() {
int score = 50;
//조건문의 실행문이 여러개라면 반드시 괄호를 사용한다.
if(score>=90) {
System.out.println("합격");
System.out.println("축하합니다~");
}
if (score>=90)
System.out.println("합격");
System.out.println("축하합니다~"); //해당 실행문은 if문 안의 실행문이 아니다.
System.out.println("if문 끝~!");
//삼항연산자 (조건 ? 조건에 맞을 때 : 조건에 맞지 않을 때)
System.out.println(score >= 90 ? "합격" : "불합격");
}
1-3. if-else문
- if문의 조건식이 참이면 if문 블록 안의 실행문을 실행하고, 그렇지 않으면 else문의 실행문을 실행한다.
private static void ifElseTest() {
int score = 100;
if(score >= 90) {
//조건의 결과가 참인 경우 실행
System.out.println("합격");
}else {
//조건의 결과가 거짓인 경우 실행
System.out.println("불합격");
}
}
1-4. if-else if-else 문
- 조건에 맞는 if 또는 else if문 안의 실행문을 실행하며, 아무 조건식에도 맞지 않을 경우 else문의 실행문을 실행한다.
1-5. Switch문
- switch문의 변수 자리에는 변수나 연산식이 들어갈 수 있다.
- 변수나 연산식의 값에 따라 case의 조건에 맞으면 해당 case의 실행문이 실행된다.
- case 실행문 끝에는 반드시 break가 있어야 한다.
- 조건에 맞는 식이 없을 경우 default의 실행문을 실행한다.
2. Random 함수
- Math : 수학공식에서 필요한 기능들을 모아놓은 class로 java.lang패키지에 들어있다.
- 0.0 <= Math.random() < 1.0
- 0보다 크고 1보다 작은 double타입의 난수를 리턴한다.
System.out.println(Math.random()); //0<=random<1
System.out.println((int)(Math.random() * 10)); //0<=random<10
System.out.println((int)(Math.random() * 10 + 1)); //1<=random<=10
System.out.println((int)(Math.random() * 45 + 1)); //1<=random<=45 (로또)
3-1. for문
- 초기값 설정
- 조건 검사
- for문 안의 실행문 수행
- 증감 수행
- 2번 으로 이동
- 반복 횟수를 알고 있을 때 주로 사용하는 반복문이다.
- 초기화식, 조건식, 증감식이 비어있는 for문은 무한루프를 돈다.
3-2. while문
- 조건식이 true일 경우에 계속해서 반복한다.
- while문 안이 항상 참인 조건이라면 무한루프를 돈다.
3-3. do-while문
- while문의 조건식에 따라 반복 여부를 결정하는 것은 while문과 동일하나, 조건식을 먼저 검사하지 않고 { } 블록을 무조건 한 번 실행 한 후 조건을 검사하여 반복 여부를 결정한다.
3-4. 반복문에 이름 붙이기
public static void main(String[] args) {
//break : 중단
// ㄴ 가장 가까운 반복문을 빠져나감
// ㄴ 중첩반복문을 빠지려면 반복문에 이름을 주면 됨
AA:for(int dan=2; dan<=9; dan++) {
System.out.println("-------" + dan + "-------");
for(int gop=1; gop<=9; gop++) {
if(dan==4) break AA;
System.out.println(dan + "*" + gop);
}
}
}
private static void test2() {
AA:for(int j=1; j<=3; j++) {
for(int i=1; i<=10; i++) {
if(i==3) continue AA; //아래문장들을 무시하고 반복문 계속 실행
System.out.println(i + "--" + j);
System.out.println("*******");
}
}
}
- break나 continue는 가장 가까운 반복문을 중단 또는 실행하기에 반복문 앞에 이름을 붙이면 해당 반복문을 중단 또는 실행할 수 있다.
4. Scanner
- 읽은 바이트를 문자, 문자열, 정수, 실수, bool 와 같은 타입으로 변환하여 리턴하는 클래스
- java.util.Scanner을 import하여야 사용 가능
import java.util.Scanner;
Scanner sc = new Scanner(System.in);
- System.in을 통해 키보드의 입력 값을 읽을 수 있다.
private static void method1() {
Scanner sc = new Scanner(System.in);
System.out.print("이름 >> ");
String name = sc.next(); //한단어
System.out.print("나이 >> ");
int age = sc.nextInt(); //숫자
//정수를 입력하고 엔터를 누르면 정수값은 리턴 되었지만
//Enter값은 그대로 남아 있어
//nextLine이 Enter값을 읽는 오류가 발생하기 때문에
//nextLine대신 next를 사용하거나
//nextLine 메소드를 한번 더 써줘서 Enter값을 없애줘야한다.
sc.nextLine();
System.out.println("주소 >> ");
String addr = sc.nextLine(); //한 줄
System.out.println(name + "의 나이는 " + age);
System.out.println("주소는 " + addr);
}
더보기
nextInt() 다음에 nextLine()을 통해 입력받는 경우 nextInt()는 정수값만 가져가고 Enter값을 두고 가기에 nextLine()이 바로 Enter값만 읽어버리는 오류가 발생한다.
오류가 발생하지 않기 위해 nextLine()을 한번 더 사용하거나 next()를 사용을 하도록 한다.
728x90
반응형
'공부 > JAVA' 카테고리의 다른 글
[JAVA STUDY] DAY5. Singleton / final / Access Modifier (0) | 2021.02.21 |
---|---|
[JAVA STUDY] DAY4. 객체 / 클래스 / 생성자 / 메소드 / 인스턴스 멤버 / this / 접근제한자 / static (0) | 2021.02.18 |
[JAVA STUDY] DAY3. Memory Reference / 배열 / 확장 for / Call / enum (0) | 2021.02.17 |
[JAVA STUDY] DAY 1. 주석 / 변수 / 데이터타입 / 형변환 / 연산자 (0) | 2021.02.15 |