JAVA

<JAVA_PreClass_231006금>

Technoqueen_X 2023. 10. 6. 11:51
728x90
반응형

<오늘의 꿀팁>
 
* 단축키
ctrl 방향키 : 하나하나 스페이스 눌러서 이동하지 않아도 됨.
shift 방향키 : 원하는 방향으로 드래그
ctrl d : 라인이 삭제됨.
제어문자(역슬래시문자로 원화 위에있는거 쉬프트없이 특별한 기능을 가진 문자임) :
\n 행을 바꿔줘
\t 칸을 띄워줘
 
--------------------------------------------------------------
 
System.out.println("오늘은 3일차 입니다~~");
System.out.println("내일부터 3일 연휴 입니다."); 
// 오늘은 3일차 입니다~~
내일부터 3일 연휴 입니다.
 
System.out.print("오늘은 3일차 입니다~~");
System.out.print("내일부터 3일 연휴 입니다."); 
// 오늘은 3일차 입니다~~내일부터 3일 연휴 입니다.
 
차이점 : ln이 붙은건 라인을 바꿔준다는 말.
 
--------------------------------------------------------------
 
char ch = 0x3092; //char도 정수형이므로 정수데이터 가능 (16진수값)
System.out.println(ch); //답 : 히라가나가 나옴
 
--------------------------------------------------------------
 
<조건문 if, else if, else>
 
if (조건1) {
   명령1;
   명령2;
       ...
} else if (조건2) {
             명령1;
             명령2;
              ...
} else if (조건3) {
              명령1;
              명령2;
               ...
} else {
          명령1;
          명령2;
           ...
}
 
--------------------------------------------------------------
 
<조건문 switch-case 명령>
 
(1) switch-case명령문과 if문하고 차이는 case값1의 조건을 만족하면 끝나는 if와 달리 switch-case는 조건을 만족해도 case값2의 명령을 또 수행한다. 그렇기 때문에 break; 를 선언해서 불필요한 흐름을 탈출해야 함.
 
(2) 스위치에 오는 (값)은 말 그대로 값이라서 정수형데이터랑 String 데이터만 올 수 있다.
 
(3) 처리할 수 있는 범위 : switch case < if

 switch(값) {
          case 값1 :
          명령1; 
           break;

          case 값2 : 
          명령2;
           break;
}
 
--------------------------------------------------------------

 

<break; 와 continue;>

 

break; 와는 다르게 반복문을 계속 진행하는 것도 있음. 
바로 continue; 


반복문을 진행하다가 continue가 있을 경우, 
다시 반복문 코드 블럭의 처음 부분으로 돌아가서 진행.

 

// 예시 :
for (int i=0; i<10; i++) {
   if (i==5){
       continue;
}
System.out.println(i);
}

// 답 :
0
1
2
3
4
6
7
8
9
(숫자 5만 빼고 0부터 9까지 출력이 됨.)


즉, continue가 있을 경우 아래의 코드를
실행하지 않고 다시 반복문의 시작 부분으로 돌아가는 것

i가 5가 되면 continue문이 실행되어 다음 반복으로 넘어가기 때문에 5는 출력되지 않음.

 

--------------------------------------------------------------
 
<연습문제>

// 문제 : 
int a = 3;
if (a > 3 && ++a > 3) {
   System.out.println("조건만족");
}
   System.out.println(a); 

// 답 : 거짓(조건만족 안뜸), 3 (왜냐면 &&는 모든게 참이여야 하는데 앞부터 이미 거짓이므로
//뒤에가 참이더라도 아예 비교를 하지않음. 
//연산이 아예 안이루어지기 때문에 전위연산자가 반영이 되지 않은 것.
 
// 문제 : 
int a = 3;
if (a > 1 || ++a > 3) {
   System.out.println("조건만족");
}
   System.out.println(a);

// 답 : 참(조건만족 뜸), 3 
or는 어차피 앞부터 참이기 때문에 하나만 만족시키면 되서 앞이 참이면 뒤에 계산을 안함.
 
// 문제 : 
int i = 30;
int j = 40;

int max =  i > j ? i : j;
// max 변수에 i와 j 중에서 큰 값을 저장
// i가 j보다 크면 max에 i를 저장
// i가 j보다 작거나 같으면 max에 j를 저장
// 따라서, max 변수에 40을 저장

int min =  i < j ? i : j;
// min 변수에 i와 j 중에서 작은 값을 저장
// i가 j보다 작으면 min에 i를 저장
// i가 j보다 크거나 같으면 min에 j를 저장
// 따라서, min 변수에 30을 저장

System.out.println("큰값 ->"+max);
System.out.println("작은값->"+min);

//답 : 
//큰값 ->40
//작은값->30
 
// 문제 : 주민번호 값으로 성별을 추출 하시오.
String id = "990401-1234567"; //8번째자리 값을 추출해야 성별을 알 수 있다.
 
// 풀이 : 
//추출하고 싶은 값을 변수에 담는 습관이 중요하다.

char sung = id.charAt(7); // id라는 문자열에서 7번째 문자를 char변수 sung에 저장.

if (sung == '1' || sung == '3' ) {
   System.out.println("남자");
} else {
  System.out.println("여자");

 
//답 : 남자
 
// 문제 : 주민번호 값으로 출생지역을 추출하시오.
// 0서울 1인천경기 2강원도 5전라도 7,8경상도 9제주도

String id = "041201-3182555"; 
 
// 풀이 :
char region = id.charAt(8);

if (region == '0') {
   System.out.println("서울");
} else if (region == '1') {
   System.out.println("인천경기");
} else if (region == '2') {
   System.out.println("강원도");
}  else if (region == '5') {
  System.out.println("전라도");
} else if (region == '7' || region =='8') {
  System.out.println("경상도");
} else if (region == '9') {
  System.out.println("제주도");

 
//답 : 인천경기
 
// 문제 : 콘솔창에 주민번호를 입력하여 성별을 파악해라.
 
// 풀이 :
import java.util.Scanner; //Scanner가 없을 경우 import를 해서 맨 위 상단에 넣어주어야 함.
Scanner sc = new Scanner(System.in); // 키보드 객체 생성 (메모리 할당을 받았단 얘기)
System.out.print ("주민번호 입력->" ); 
String id = sc.nextLine(); // Scanner 클래스의 nextLine() 메서드를 사용하여 입력받은 문자열을 String변수 id에 저장

char sung = id.charAt(7);
if (sung == '1' || sung == '3' ) {
   System.out.println("남자");
} else {
   System.out.println("여자");


// 이렇게 입력하면 아래 console창에 주민번호 입력 -> 이라는게 뜨는데
// 여기다가 실제 주민번호를 콘솔창에 입력해주면
// 여자인지 남자인지 성별구분을 콘솔창에서 해줌.
 
// 답 :
주민번호입력 -> 041201-3115555(내가 입력하는부분) 
남자
 
// 문제 : switch-case문을 사용하여 주어진 주민번호의 지역을 알아내라.
String id = "041201-3182555"; 
 
// 풀이 : 
String id = "041201-3182555"; 
char region = id.charAt(8); // id라는 문자열에서 8번째 문자를 char변수 region에 저장.

switch(region) {
    case '0':
    System.out.println("서울");
    break;
    
    case '1':
    System.out.println("인천경기");
    break;
 
    case '2':
    System.out.println("강원도");
    break;
 
    case '5':
    System.out.println("전라도");
    break;
 
    case '7':
    case '8':
    System.out.println("경상도");
    break;
 
    case '9':
    System.out.println("제주도");
    break;
}

// 답 : 인천경기
 
// 문제 : switch-case문을 사용하여 주어진 주민번호의 성별을 알아내라.
String id = "990401-1234567"; 
 
// 풀이 : 
String id = "990401-1234567"; 
char sung = id.charAt(7);

switch(sung) {
        case '1' :
        case '3' :
        System.out.println("남자");
        break;

        case '2' :
        case '4' :
        System.out.println("여자");
        break;
}

// 답 : 남자

728x90
반응형

'JAVA' 카테고리의 다른 글

<JAVA_PreClass_231012목>  (2) 2023.10.12
<JAVA_PreClass_231011수>  (2) 2023.10.11
<JAVA_PreClass_231010화>  (0) 2023.10.10
<JAVA_PreClass_231005목>  (2) 2023.10.05
<JAVA_PreClass_231004수>  (0) 2023.10.04