-
3. 연산자들, 조건문, 반복문program_language 및 궁금한것/Java 2019. 4. 9. 17:24
오늘의 날씨: 흐림
not inisialize <----- 초기화를 하지 않았다.
WhiteSpace <----- 공백
자바 어플리케이션의 main ---> 독립적으로 실행할 수 있는 자바 프로그램
증감연산자
System.out.println("su3++(후위연산자)==>" + su3++);
변수명++ ---> 후위 연산자
su++ ---> su=su+1;
++ su3 은 전위 연산자로 타 연산과 같이 사용할경우 계산 먼저하고 다른 연산 사용할게 라는말
System.out.println("++su3(전위연산자)==>" + ++su3);
++변수명 ---> 전위 연산자
++su ---> su=1+su; 연산 먼저하고 다른 연산자 사용할게! 내가 먼저!
su3++은 후위 연산자로 타 연산과 같이 사용할 경우 다른연산을 먼저 사용하고 계산을 진행함
다른 연산자에는 System.out.println이 있음
// 증감연산자 int su1 = 300; su1 = su1 + 1; int su3 = 50; System.out.println(su3); su3++; System.out.println(su3); ++su3; System.out.println(su3); System.out.println("su3++(후위연산자)==>" + su3++); System.out.println("++su3(전위연산자)==>" + ++su3);
// 결과값 50 51 52 su3++(후위연산자)==>52 ++su3(전위연산자)==>54
su= su+2; ---> su +=2; // 곱하기 빼기 나누기 등 사용하는 방식은 같음.
논리연산자
A, B는 boolean 데이터!
(true가 1, false 가 0이라는 가정)
&& 연산시 앞이 false이면 뒤에는 실행이 되지 않는다. (하지만 db에서는 반대이다)
// 평달인지 윤달인지? public static void main(String[] args) { // command int year = 2019; // (year % 4) ==0; <-- false boolean status1 = (year % 4) == 0; boolean status2 = year % 100 != 0; boolean status3 = year % 400 == 0; boolean result = (status1 && status2) || status3; System.out.println(result); }
조건문
- 조건에 따라 실행할 문장들을 제어하는 역할
- 반드시 메소드 내에 기술한다.
- if문, if~else문, swith~case문, if~else if ~if문
- 조건: 컨디션(condition)
if(조건식) <---boolean데이터! 메소드도 return값이 boolean이라면 가능!
--- 실행할 문장이 한개라면 {}영역 괄호 생략이 가능하다!
--- 홀로 사용이 불가능 하고 반드시 if(){}블럭 뒤에 위치를 해야 한다.
demotion <---- 상수형 중 큰 타입의 자료형이 작은 타입의 자료형이 들어갈 수 잇는 경우를 말한다.
promotion <--- 작은 자료형을 큰 타입의 자료형에 넣는 것이다.
compile을 통해서 .class --> .java로 변환
switch(기준데이터){ // 수식의 데이터 값: 정수(byte, short, int, long) 문자(char), , 문자열(String)
case 비교데이터1: 실행할 문장1;
break;
case 비교데이터2: 실행할 문장2;
break;
case 비교데이터3: 실행할 문장3;
break;
default: 일치하는 case값이 없을 때 깁ㄴ적으로 실행할 문장;
}
** case는 처음부터 끝까지 다 읽는다. 그래서 break를 사용하는 것이다.
break <--------- switch블럭, 반복문 블럭 안에서 사용.
= break는 깨뜨리다라는 뜻이다. 감싸는 블럭을 벗어나는 역할을 한다.
default // 일치하는 case값이 없을때 실행할 문장을 말한다.
예제1.
public class SwitchTest { public static void main(String[] args) { int su = 5; switch (su) { // 수식의 데이터 값: 정수(byte, short, int, long) 문자(char) case 1: System.out.println("안녕?"); break; // <--------- switch블럭, 반복문 블럭 안에서 사용. // break를 감싸는 블럭을 벗어나는 역할이다! 깨뜨리다의 뜻 case 2: System.out.println("xinchao"); break; case 3: System.out.println("Hello"); break; default: // 일치하는 case값이 없을때 실행할 문장 System.out.println("감사합니다."); } } }
public class JumsuTest { public static void main(String[] args) { int jumsu = 100; // ------> 출력값: B학점입니다! // - 비교연산자가 들어갈 수 없다. // - 비교연산의 결과값이 boolean형으로 나오는데 jumsu자료형과 같은 자료가 아니기에 컴파일 에러가 뜬다. switch (jumsu / 10) { case 10: // <--- 100점의 경우 10의 케이스가 나오고 패스하면 case 9로 가게 된다. // 200점 이상의 경우 default로 넘어가게 되는데 이건 case문으로 교정할 수 없다. if문으로 감싸야 한다. case 9: System.out.println("A학점입니다."); break; case 8: System.out.println("B학점입니다."); break; case 7: System.out.println("C학점입니다."); break; case 6: System.out.println("D학점입니다."); break; default: System.out.println("F학점입니다."); break; } } }
100점의 경우 10의 케이스가 나오고 패스하면 case 9로 가게 된다.
200점 이상의 경우 default로 넘어가게 되는데 이건 case문으로 교정할 수 없다. if문으로 감싸야 한다.if(조건식){
조건식이 참일때 실행할 문장;
}else if(조건식2){
조건식1이 거짓이고, 조건식 2가 참일때 실행할 문장;
}else if(조건식3){
조건식 1,2가 거짓이고 조건식 3이 참일때 실행할 문장;
}else {
조건식 1,2,3이 거짓일대 실행할 문장.
}
class BB { void bb() { int jumsu2 = 76; // 조건문 if (100 >= jumsu2 && jumsu2>= 90) { System.out.println("A학점입니다."); } else if (jumsu2 >= 80) { System.out.println("B학점입니다."); } else if (jumsu2 >= 70) { System.out.println("C학점입니다."); } else if (jumsu2 >= 60) { System.out.println("D학점입니다."); } else { System.out.println("F학점입니다."); } } }
** else if : 조건을 만나면 다음 if문은 실행되지 않는다.
if(!result) { // result==false <-- ! 는 Not Result, 부정연산자
메소드정의
리턴형 메소드명( )
{
// 변수선언 int min;
// 변수초기화 su=300; min=0;
// 메소드호출 sysout ("안녕");
// 조건문 if(조건식) {}
// 반복문
}
반복문 <--- Loop, continue 문
1. for문
- 일정횟수 반복할 때 사용
- 규칙적인 수를 표현할때 사용
- 배열의 인덱스를 표현할 때 사용
* 인덱스는 배열의 순차적인 번호를 의미한다.
[ 형식 ]
for( 초기화; 조건식; 증감연산자 ) { 반복적으로 실행할 문장; } <--- 반복할 문자가 하나라면 {}생략 가능
System.out.println("안녕");
for 문 예제.
public class ForTest { public static void main(String[] args) { Z1 z1 = new Z1(); z1.op(); } } class Z1 { void op() { System.out.println("======1부터 5까지 출력======"); for (int i = 0; i < 5; i++) { System.out.println(i + 1); // <-- println은 line new(개행), 줄바꿈을 실행한다. } // 1 2 3 4 5 System.out.println("======1 2 3 4 5 를 출력======"); for (int i = 0; i < 5; i++) { System.out.print(i + 1 + " "); // <--print는 데이터 출력만한다. } System.out.println();// 띄어쓰기 System.out.println("======5 4 3 2 1 를 출력======"); for (int i = 5; i > 0; i--) { System.out.print(i + " "); } System.out.println(); // 띄어쓰기 System.out.println("======3 6 9 12 를 출력======"); System.out.print("["); for (int i = 3; i < 13; i += 3) { // i+=3; System.out.print(i); // 4회 if (i < 12) { System.out.print(", "); // 3회 } } System.out.println("]"); // } }
결과값.
======1부터 5까지 출력====== 1 2 3 4 5 ======1 2 3 4 5 를 출력====== 1 2 3 4 5 ======5 4 3 2 1 를 출력====== 5 4 3 2 1 ======3 6 9 12 를 출력====== [3, 6, 9, 12]
2. while문
- 반복되는 횟수가 일정치 않을때 사용한다.
- 서버의 리스너를 표현할때 --> 무한반복할때
ex) RMI (Remote), sorket
[형식]
while( 조건식 ){ 조건식 결과가 참일 동안 실행할 문장 }
조건에는 boolean형 값만 들어갈 수 있다.
예제. 결과: sum은--->55
public class WhileTest { public static void main(String[] args) { // while문을 사용해서 1~10가지 더한 값을 화면에 출력하세요. int sum = 0; // 데이터 누적 int su = 0; // 1씩증가 boolean flag = true; // 논리값 while (flag) { // flag의 논리값이 true일 경우에만 실행하자. false면 break sum = sum + su; // sum=0+1, sum=1+2, sum=3+4... su++; // 1씩 증가하기 때문에 su를 증가시켜준다. // System.out.println(su); // su가 제대로 증가하는지 찍어보기 if (su > 10) // 만약 수가 10이상이라면 flag는 false로 바꾼다. 그렇다면 while문 실행이 멈추겟지? flag = false; // 이곳에 System.out.println(sum)을 하면 값이 총 10번 찍히겠지? } // while문 끝났다. System.out.println("sum은--->" + sum); // while문을 마치면 sum의 최종값을 출력한다. } }
3. do ~ while문
- while문과 동일
차이점: 실행횟수(1~무한대)
--> 조건식의 결과와 상관없이 무조건 한번은 실행한다.!
[형식] do{ 반복실행할문장 } while(조건식);
public class DoWhileTest { public static void main(String[] args) { // 문제) do~while문을 사용하여 "Hello World!"를 화면에 3번 출력하시오. boolean flag = true; int cnt = 1; do { System.out.println("Hello World!"); if (cnt++ == 3) { break; // == flag=false; 이 두가지의 뜻은 똑같당 } } while (flag); // do~while문을 사용하여 1~10 합을 출력하시오. int su = 1, sum = 0; // 적합한 순서는 아니다. do { sum += su; // sum=sum+su // 실행순서 3 1 2 if(su<10) { su++; continue; //계속 실행 다음에 sum+su;로 돌아갔다가 if(false)이니 flag=false가 된다. } flag=false; } while (flag); System.out.println("1부터 10까지의 합 --->"+sum); } }
프로그래밍에선 CSV라는 언어를 많이 사용한다.
CSV - comma, Seperater, Value
연산의 종류에는사칙연산, 논리연산, 비트연산이 있다.
반응형'program_language 및 궁금한것 > Java' 카테고리의 다른 글
5. 자바의 객체 지향이란? (OOP) (0) 2019.04.12 4. 자바의 입력 (0) 2019.04.11 2. 자바란? (JVM, 구성요소, 자료구조) (0) 2019.04.08 1. java(자바) 설치 방법 (0) 2019.04.08 나의 학습목표 [19.04.08~19.05.07] (0) 2019.04.08