JAVA

JAVA 2주차

Zㅣ존수빈zz 2022. 11. 10. 14:52

- 입력(사용자가 값을 제공)

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(% 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]+" ");
         }
    }