JAVA 2주차
- 입력(사용자가 값을 제공)
Scanner 변수 = new Scanner(System.in); // Scanner > Ctrl + space > java.util선택
- 입력을 받기 위한 변수(공간)
int 숫자1 = 0;
String 글자1 = null;
double 숫자2 = 0.0;
- 입력받기
숫자1 = sc.nextInt();
글자1 = sc.next();
숫자2 = sc.nextDouble();
ex)
if(숫자1 == 10) {
// int
System.out.println("입력한 숫자는 10입니다.");
}
if(숫자2 == 3.14) {
// double
System.out.println("입력한 실수는 3.14입니다.");
}
if(글자1.equals("비교대상")) {
// String
System.out.println("입력한 문자열은 비교대상 입니다.");
}
sc.close();
1. if
- if: 상황에 따라서 프로그램 동작을 다르게 하고 싶을 때 사용하는 문법
if(조건1){
조건이 맞으면 실행할 문장1;
조건이 맞으면 실행할 문장2'
}else if(조건2){
위 조건이 틀리고 조건2가 맞으면 실행할 문장1;
위 조건이 틀리고 조건2가 맞으면 실행할 문장2;
}else if(조건3){
위 모든 조건들이 틀리고 조건3이 맞으면 실행할 문장1;
}else{
위 모든 조건들이 틀릴 때 실행할 문장;
}
- Scanner를 활용한 if문 예제
Scanner sc = new Scanner(System.in);
String id;
int password;
System.out.println("아이디를 입력하세요>>>");
id = sc.next();
System.out.println("비밀번호를 입력하세요>>>");
password = sc.nextInt();
if(!(id.equals("hello")) || !(password == 1234)) {
System.out.println("없는 아이디이거나 패스워드 입니다.");
}else {
System.out.println("로그인 성공");
}
2. Switch
- switch: 같은지 비교
- switch ~ case ~ break
ex)
String job = ""; int salary = 0;
Scanner scanner = new Scanner(System.in);
System.out.println("직급을 입력하세요>>");
job = scanner.next();
switch(job) {
case "사원":
salary = 2800;
break;
case "대리":
salary = 3600;
break;
case "과장":
salary = 5000;
break;
case "부장":
salary = 7500;
break;
default:
salary = 0;
}
System.out.println("연봉은 "+salary+"만원 입니다.");
3. While
- 조건을 충족하면 명령을 실행하는 것은 if와 동일하나 while은 조건을 충족하는 이상 반복하여 명령을 실행한다.
ex)
while(age >= 20) {
System.out.println("while문: "+age);
}
- while을 사용하여 횟수 카운팅
내가 원하는 횟수 만큼만 실행하도록 '플래그(기준점)'을 세운다.
ex)
while(i < 5) {
System.out.println("Hello");
i++; // 반복문 한번 실행할 때마다 플래그를 1씩 증가시킨다.(횟수카운팅)
}
- while을 사용하여 합계 구하기
누적해서 더한 값을 저장할 변수를 만든다.
ex)
int b = 0;
int sum = 0;
while(b < 11) {
sum += b;
b++;
}
System.out.println(sum);
4. For
- while과 동일한 기능.
- for(초기값; 조건식; 증감량) {
반복하고자 하는 코드들;
}
- for문에서의 초기값은 조건식이 끝나면 소멸한다.
ex)
for(int i=0; i<5; i++) {
System.out.println("for 안녕");
}
- 증가값 누적 합계 구하기
ex)
int 총합 = 0;
for(int b=0; b<11; b++) {
총합 += b;
}
System.out.println(총합);
1). 초기값을 생성
2). 조건식 검사
3). {}실행
4). 증감식
5). 조건식 검사
6). {}실행
...
5. Flow
1) 조건문 안에 조건문
int age = 30;
if(age >= 20) {
System.out.println("성인");
if(age >= 50) {
System.out.println("50세 미만");
}
}
2) 조건문 안에 반복문
ex)
int flag = 1;
if(flag != 0) {
for(int i=0; i<5; i++) {
System.out.println("조건문 안에 반복문"+i);
}
}
3) 반복문 안에 조건문
ex)
for(int i=0; i<5; i++) {
if(i % 2 ==0) {
System.out.println("반복문 안에 조건문"+i);
}
}
4) 반복문 안에 반복문(이중반복문)
ex)
for(int out=0; out<3; out++) {
System.out.println("바깥 반복문"+(out+1));
for(int in=0; in<3; in++) {
System.out.println("안쪽 반복문"+(in+1));
}
5) break 과 continue
- break: 반복문을 강제종료
- continue: 반복문을\ 1회성 취소
6. Array
- 여러 변수들을 하나의 주제로 묶어 그룹으로 만들고 싶을 때
- 배열 초기화(선언과 동시에 값 대입)
String 그룹제목[] = {아이템1, 아이템2, 아이템3, 아이템4, 아이템5} - 배열 선언(공간만 먼저 생성)
int no[] = new int[5]; - 대입
no[0] = 5;
no[1] = 15;
- array의 자리값은 0부터 시작한다.
ex) int num [] = {한치, 두치, 세치, 네치}
-->num[0]은 한치, num[1]은 두치가 된다.
- 2차원 배열(배열안에 배열)
- 배열 초기화
int arr[][] = {{1, 2}, {3, 4}, {5, 6}, {7, 8}, {9, 10}}; - 2차원 배열 대입
arr[3][1] = 80; {7, 8} --> {7, 80} - 2차원 배열 - 이중반복문 사용
for(int i=0; i<5; i++) {
for(int j=0; j<2; j++) {
system.out.print(arr[i][j]+" ");
}
}