IT 면접족보/자바 면접족보

자바 면접 족보 정리(5일 차 )

낙산암 2020. 12. 5. 10:58

1.조건문의 3가지 종류를 나열하고 설명하시오.

if

: 조건을 확인하고 true{}중괄호 안의 내용을 실행하고, 아니면 빠져나간다.

if(n1 < n2) { // if(boolean 타입을 받는게 와야한다.)

     System.out.println("n1 > n2 is true"); //true면 실행, false면 실행안하고 빠져나감.

}

 

if(n1 < n2) System.out.println("n1 > n2 is true");

//if문에 속한 문장이 하나일 경우 중괄호 생략 가능 but 가능하면 쓰자.

 

if - else

: if문의 조건이 false일 경우 else로 가서 {}중괄호 안의 내용을 실행한다.

반드시 ifelse 둘중하나는 실행하게 되어있다.

if(n1 == n2) {

     System.out.println("n1 == n2 is true"); //true면 실행 후 조건문을 빠져나감

}else {

     System.out.println("n1 == n2 is false"); //false면 실행 후 조건문을 빠져나감

}

//if문과 마찬가지로 if절 또는 else 절에 속한 문장이 하나일 경우 중괄호 생략 가능함

 

예시

if ~ else if ~ else

: if문이 false이고, 검사하고 싶은 조건이 많은 경우에는 else if를 추가로 여러번 사용하여 조건을 검사할 수 있다. 모든게 false인 경우 if - else문과 마찬가지로 else로 넘어간다.

public class Hello {

public static void main(String[] args) {

   int num = 120;

 

if (num <0)

     System.out.println("0미만");

else if(num <100)

     System.out.println("0이상 100미만");

else

    System.out.println("100이상"); //모든 ifelse if 문이 falseelse를 실행

   }

}

 

결과 100이상

 

 

2.아래의 프로그램을 짜시오.
 - 국어:80 수학:80 영어:60        
   점과 평균을 출력하고, 평균에 따른 수우미양가를 출력하시오 

public class Hello {

public static void main(String[] args) {

int kor = 80;

int math = 80;

int eng = 60;

int sum;

double avg;

 

sum = kor + math + eng;

avg = sum / 3.0;

 

System.out.println("총점은 "+sum+"점 입니다.");

if(avg>=90) {

System.out.println("평균 " + avg + "는 수 입니다.");

}else if(avg>=80) {

System.out.println("평균 " + avg + "는 우 입니다.");

}else if(avg>=70) {

System.out.println("평균 " + avg + "는 미 입니다.");

}else if(avg>=60) {

System.out.println("평균 " + avg + "는 양 입니다.");

}else {

System.out.println("평균 " + avg + "는 가 입니다.");

}

}

}

3.아래를 삼항연산자를 사용하여 프로그래밍 하시오.
-80, 33 ,55 = 최대값을 출력하시오.


public class Hello {

public static void main(String[] args) {

int a= 80, b=33, c=55;

int max;

 

max = (a > b) ? (a > c ? a : c) : (b > c ? b : c);

//max = a > c ? (a > b ? a : (b > c ? b : c)) : c; //지난번에 푼 과정

 

System.out.println("max is "+ max);

}

}

4.switch 문에서 '걸어서 하늘까지' 를 설명하시오.

switch문

: 조건이 맞는 case를 찾아가서 break까지 실행 후 조건문을 빠져나간다. 만일 조건에 맞는 게 없을 경우 default를 실행한다.

switch(n) 에서 n에는 기본적으로 정수가 온다. (실수는 오면 안된다!)

 

int n =3;

 

switch(n) { //n에는 기본적으로 정수가 온다. 실수는 오면 안된다.!

case 1:

System.out.println("Simple Java");

case 2:

System.out.println("Funny Java");

case 3:

System.out.println("Fantastic Java");

default:

System.out.println("The best programming language");

}

System.out.println("Do you like Java?");

}

 

int n =3; switch(n) { //n에는 기본적으로 정수가 온다. 실수는 오면 안된다.!

5.아래를 프로그래밍 하시오.

- int num = -10 을 할당후 해당 정수에 대한 절대값을 출력하는 프로그램을 작성하시오.

 

public class Hello {

public static void main(String[] args) {

int num = -10;

 

if(num < 0) {

num = -num;

}

System.out.println("절댓값은 " +num);

}

}


6.반복문에서 while 문과 do while 문의 차이는?

while

 

먼저! 조건 검사하고 결과가 true이면 중괄호 영역 실행

 

초기값

while(반복조건) {

반복영역

증감

}

- 예시

 

public class Hello {

public static void main(String[] args) {

int num = 0;

while(num <5) {

System.out.println("I like Java " + num);

num++;

}

}

}

 

 

**결과**

 

I like Java 0

I like Java 1

I like Java 2

I like Java 3

I like Java 4

 

do while

 

먼저! 중괄호 영역 실행, 조건 검사 후 결과가 true이면 반복 결정. **무조건 1번은 실행한다.**

 

 

초기값

do{

반복영역

증감

} while(반복조건);

 

- 예시

 

public class Hello {

public static void main(String[] args) {

int num = 0;

 

do {

System.out.println("I like Java " + num);

num++;

}while(num<5);

}

}

 

 

결과

 

I like Java 0

I like Java 1

I like Java 2

I like Java 3

I like Java 4

 

while문과 do while문의 차이

 

while문은 조건이 안 맞으면 한번도 실행 안할 수 있지만

do while문은 조건이 맞지 않더라도 무조건 한 번은 실행한다.


7.for 문에서 for 문이 실행되는 순서를 설명하시오.

for(초기값; 반복 조건; 증감);

 

 

//예시

for(int i = 0; i<3; i++){

System.out.println("조건에 맞으면 출력");

}

 

for문의 실행 순서

For 돌아가는 순서

변수의 범위는 중괄호 안 for문에서 초기화 구문은 딱 한번만 실행됨

8. 9단을 출력하는 프로그램을 만드시오.(while 문 사용할것)


public class Hello {

public static void main(String[] args) {

     int i=1; //첫 번째 반복문의 변수 초기화

     while(i<10) { //'' 출력을 위한 첫 번째 반복문

          System.out.println("\n"+i+"");

          int j=1; //중첩 반복문의 변수 초기화

 

          while(j<10) { //1~9 곱을 위한 중첩된 반복문

              System.out.println(i+"x"+j+"="+i * j);

              j++; //중첩 반복문의 변수 증감

        }

        i++; //첫 번째 반복문의 변수 증감

      }

   }

}

9.1부터 100까지의 합을 구하시오.

public class Hello {

        public static void main(String[] args) {

        int num;

        int sum=0;

 

        for(num=1; num<=100; num++) {

            sum = sum + num;

       }

        System.out.println("1부터 100까지의 합은: " + sum +"입니다.");

     }

}


10.1부터 100까지의 홀수들의 합을 구하시오.

public class Hello {

public static void main(String[] args) {

     int num;

     int sum=0;

 

     for(num=1; num<=100; num++) {

           if(num % 2 == 0) {

           sum = sum + num;

       }

   } 

   System.out.println("1부터 100까지 중 홀수의 합은: " + sum +"입니다.");

  }

}

 

11.반복문에서의 break 와 continue 를 설명하시오.

 

중간에 break를 걸리면 true면 조건문을 탈출한다.

중간에 continue걸리면 true면 다시 조건 검사로 돌아간다.

 

예시 : 처음 만나는 5의 배수이자 7의 배수인 수를 찾는 반복문

public class Hello {

    public static void main(String[] args) {

        int num = 1;

        boolean search = false;

 

        //처음 만나는 5의 배수이자 7의 배수인 수를 찾는 반복문

        while(num <100) {

            if((num % 5 == 0) && (num % 7 ==0)) {

            search = true;

            break; //while문을 탈출

        }

       num++;

}

 

      if(search) {

          System.out.println("찾는 정수: " + num);

      }else {

          System.out.println("5의 배수이자 7의 배수인 수를 찾지 못했습니다.");

        }

    }

}

12. 아래를 프로그래밍 하시오.
  - 1과 1000 사이의 숫자중 3의 배수 이자 5의 배수인 첫번재 수는?

public class Hello {

public static void main(String[] args) {

int num = 1;

boolean search = false;

while(num<1000) {

if((num%3==0)&&(num%5==0)) {

search = true;

break; //if문 탈출

}

num++;

}

if(search) {

System.out.println("찾는 정수: " + num);

}else {

System.out.println("3의 배수이자 5의 배수인 수를 찾지 못했습니다.");

}

}

 - 1과 1000 사이의 숫자중 2의 배수 이자 3의 배수인 수는 모두 몇개인가?

public class Hello {

public static void main(String[] args) {

int i =1;

int count=0;

while((i++)<1000){

if((i%2!=0) || (i%3!=0)) { //2배수이거나 3의 배수가 아니면

continue; //조건문으로 돌아감

}

count++; // 2의 배수이고 3의 배수인 경우 카운트함

//System.out.println(i);

}

System.out.println("count:" + count);

}



13.화폐매수 구하기?
=126500 의 금액을 한국화폐으로 바꾸었을 때 각각 몇 개의 화폐가 필요한지 계산해서 출력하라.
예) int 126500;
   오만원 : 2장
   만원:    2장
   오천원짜리 :1장
   천원짜리: 1
   오백원짜리 1개
   백원짜리 0개

 


13. 90, 70 100  세 수중  max  값을 구하시오.


//90, 70 100  세 수중  max  값을 구하시오.
int num1 = 80;
int num2 =1000;
int num3=100;

int max;

if( (num1 > num2) && (num1 >num3) ) {
max = num1;
}else if( (num2 > num3) && (num2 >num1) ) {
max = num2;
}else {
max = num3;
}

 

//두번째 방법

int max = num1;

if( num2 > max) {
max = num2;
}

if( num3 > max) {
max = num3;
}

System.out.println(max);