728x90
반응형

반복문 for문

 초기화,조건식,증감식 그리고 수행할 블럭 { } 또는 문장으로 구성

 for (초기화 ; 조건식 ; 증감식) {

               // 조건식이  true일 때 수행할 문장들을 적는다.

  }

※ 반복하려는 문장이 단 하나일 때는 중괄호 {} 생략가능.


1.초기화 -> 2.조건식 -> 3.수행될 문장 -> 4.증감식 -> 2.조건식


예) 1~10까지의 정수 더하기

     int sum = 0;

     for (int i=1; i<=10; i++) {

              sum= sum+i; 

      }



<for문>

'반복내용:회수' 를 5 번 출력하는 반복문


1~10까지의 합계를 출력하는 반복문




중첩 for문

 for문 안에 또 다른 for문을 포함시킬 수 있다.

 for문의 중첩횟수에는 거의 제한이 없다.



<중첩 for문>




반복문 while문

 조건식과 수행할 블럭 { } 또는 문장으로 구성

  while (조건식) {

               //조건식의 연산결과가 true일 때 수행될 문장들을 적는다.

   }




<while문>

'반복내용:회수'를 5회 출력하는 반복문


1~10까지의 합계를 출력하는 반복문




if~break : while의 무한 루프를 종료하는 조건문




중첩 while문

 while문 안에 또 다른 while문을 포함시킬 수 있다.

 while문의 중첩횟수에는 거의 제한이 없다.




<중첩while문>

728x90
반응형
728x90
반응형

조건식 if문

 if문은 if, if~else, if~else if의 세가지 형태가 있다.

 조건식의 결과는 반드시 true 또는 false이어야 한다.


 if(조건식) {

            // 조건식의 결과가 true일 때 수행될 문장들

    }


② if(조건식) {

           // 조건식의 결과가 true일 때 수행될 문장들

    } else {

           // 조건식의 결과가 false일 때 수행될 문장들

    }


 if(조건식1) {

          // 조건식1의 결과가 true일때 수행될 문장들

    } else if(조건식2) {

          // 조건식2의 결과가 ture일때 수행될 문장들

          // (조건식1의 결과는 false)

    } else if(조건식3) {

          // 조건식3의 결과가 true일때 수행될 문장들

          // (조건식1과 조건식2의 결과는 false)

    } else {

          // 모든 조건식의 결과가 false일때 수행될 문장들

    }


<if문>



<fi~else문>



if문의 예시

예1) 변수 i가 홀수인지 짝수인지의 조건 : if(i%2==0) {    }

예2) 변수 i가 3의 배수인지의 조건 : if(i%3==0) {    }

예3) 문자형 변수 ch가 공백이거나 탭인지 조건 : if(ch==' ' || ch=='\t') {    }

예4) 문자형 변수 ch에 저장된 문자가 소문자 c또는 대문자C인지의 조건 : if(ch=='c' || ch=='C') {    }

예5) 문자열 변수 str에 저장된 문자가 소문자 c또는 대문자C인지의 조건 : if(str.equals("c") || str.equals("C")) {    }

예6) 전원이 ON인지 OFF인지의 조건 : boolean powerOn=true;

                                                     if(!powerOn) { // 전원이 꺼져있으면... }



중첩 if문

 ​if문 안에 또 다른 if문을 중첩해서 넣을 수 있다.

 if문의 중첩회수에는 거의 제한이 없다.




<중첩 if문>








조건문 switch

 if문의 조건식과 달리, 조건식의 계산결과가 int범위 이하의 정수만 가능

 조건식의 계산결과와 일치하는 case문으로 이동 후 break문을 만날 때까지 문장들을 수행한다.(break문이 없으면 switch문의 끝까지 진행)

 일치하는 case문의 값이 없는 경우 default문으로 이동한다.(default문 생략 가능)

 case문의 값으로 변수를 사용할 수 없다. (리터럴과 상수만)



<switch문>


728x90
반응형
728x90
반응형

비교 연산자

 >, <, >=, <, ==, !=

 피연산자를 같은 타입으로 변환한 후에 비교한다.

 결과 값은 true 또는 false이다.

 기본형(boolean제외)과 참조형에 사용할 수 있으나 참조형에는 ==와 !-만 사용할 수 있다.

 

 

<비교 연산자>

 

 

 

 

비트 연산자

 &, |, ^

 피연산자를 비트단위로 연산하는 연산자

 실수영(flaot, double)을 제외한 모든 기본형에 사용 가능하다.

 OR연산자(|) :: 피연자 중 어느 한 쪽이 1이면 1이다.

 AND연산자{&) :: 피연산자 양 쪽 모두 1이면 1이다.

 XOR연산자(^) :: 피연산자가 서로 다를때 1이다.

 

<비트 연산자>

 

 

 

 

 

논리 연산자

 &&, ||

 피연산자가 반드시 boolean이어야 하며 연산결과도 boolean이다.

 &&가 ||보다 우선순위가 높다. 같이 사용하는 경우에는 괄호로 묶어야 한다.

 OR연산자(||) :: 피연산자 중 한 쪽이 true이면 true이다.

 AND연산자(&&) :: 피연산자 양 쪾 모두 treu이면 true이다.

 

<논리 연산자>

 

 

 

 

삼항 연산자

 조건식 ? 식1 : 식2

 조건식의 연산경과가 true이면 '식1'의 결과를 반환하고, false이면 '식2'의 결과를 반환한다.(※ if~else문과 같은 형식)

 

<삼항 연산자>

 

 

 

대입 연산자

 = (대입), op= (결합대입, 복합연산자)

 오른쪽 피연산자의 값을 왼쪽 피연산자에 저장한다.

 왼쪽 피연산자는 상수가 아니어야 한다.

 예1) int i=0;

      i=i+3;

 예2) final int MAX=3;

        MAX=10; //오류 (상수)

728x90
반응형
728x90
반응형

연산자

 연산자 :: 어떠한 기능을 수행하는 기호

 피연산자 :: 연산자의 작업 대상 (변수, 상수, 리터럴, 수식)

연산자의 종류

 1. 단항 연산자 :: -(음수), ++, --, ~, !

 2. 이항 연산자 :: 산술 : +, -,  *, /, %, <<, >>

                         비교 : >, <, >=, <=, ==, !=

                         논리 : &&, ||, &, ^, |

 3. 삼항 연산자 :: 조건식 ? 식1 : 식2

 4. 대입 연산자 :: =

 

연산자의 우선순위

 

 

연산자의 우선순위

 괄호의 우선수위가 제일높다.

 산술 > 비교 > 논리 > 대입

 단항 > 이항 > 삼항

 연산자의 연산 진행방향 : 왼쪽에서 오른쪽 (→)

 단항 연산자와 대입 연산자의 진행방향 : 오른쪽에서 왼쪽(←)

 

예) 3*4*5 : 3*4가 먼저 계산되고, 3*4의 결과인 12*5가 계산된다.

예) x=y=3 : y에 3이 먼저 저장되고, y의 값(3)이 x에 저장된다.

예) -x+3 : 단항이 이항보다 먼저 계산된다.

예)x+3*y : 곱셈과 나눗셈이 덧셈과 뺄셈보다 먼저 계산된다.

예) x+3>y-2 : 산술 연산자가 비교 연산자보다 먼저 계산된다.

예)x>3&&x<5 : 비교 연산자가 논리 연산자보다 먼저 계산된다.

예)int result=x+y*3 : 대입 연산자는 맨 뒤에 대입된다.

 

주의 해야 할 연산자의 우선순위 :: 아래와 같은 수식은 괄호를 사용하여 우선순이를 구분하는 것이 좋다.

 1. 쉬프트 연산자 ( >>, <<, >>> ) 는 덧셈연산자보다 우선순위가 낮다.

      예) x<<2+1 → x<<(2+1)과 같다.

 2. ||, |(OR)는 &&, &(AND)보다 우선순위가 낮다.

      예) x<-1 || x>3 && x<5  → x<-1 || (x>3 && x<5)와 같다.

 

 

 

증감 연산자

증가 연산자(++) :: 피연산자의 값을 1 증가시킨다.

감소 연산자(__) :: 피연산자의 값을 1 감소시킨다.

 

예) int i=2;

     int j=0;

     전위형 : j= ++i; → i=3,j=3

     후위형 : j= i++; → i=3,j=2

 ※ ++i와 i=i+는 같은 결과를 얻지만, ++i가 속도가 더 빠르고 코드를 간결하게 작성할 수 있기 때문에 더 많이 사용한다.

 

 

 

비트 전환 연산자

 비트 연산자 : ~

 2진수 표현에서 1은 0으로, 0은 1로 바꾸는 연산자

 정수형에서만 사용 가능하다

 

<양의 정수를 음의 정수로 표현하는 방법>

 

 

 

 

이항 연산자

 - 이항 연산자의 특징 : 이항 연산자는 연산을 수행하기 전에 피연산자의 타입을 일치시킨다.

 - int보다 크기가 작은 타입은 int로 변환한다 : (byte, char, short) → int

 피연산자 중 표현번위가 큰 타입으로 형변환한다.

     byte + short → int

     char + int → int

     float + int → float

     long + float → float

     float + double → double

 

예) byte + byte → int

     byte a = 10;

     byte b = 20;

     byte c = a+b;   //오류

     int c = a+b;      //정상

 

 

 

 

쉬프트 연산자

 << (왼쪽 쉬프트), >> (오른쪽 쉬프트)

 쉬프트 연산자는 2의 n승으로 곱하거나 나눈 결과와 같다.

 사칙연산의 곱셈이나 나눗셈보다 연산 속도가 빠르다.

 예) x<<n = x*2^n

      x>>n = x/2^n

      8<<2 = 8*2^2

      8>>2 = 8/2^2

 

728x90
반응형
728x90
반응형

특수문자를 표현하는 방법

 특수문자                리터럴

  tab                   \t

    backspace                \b

    new line(줄바꿈,개행)           \n

    carriage return(커서를 맨 앞으로)      \r

    역슬래쉬(\)               \\

    작은 따옴표                \'

    큰 따옴표                 \"

    유니코드(16진수) 문자           \u 유니코드 (예:char a='\u0041')





 

< 문자와 문자열 >








정수의 오버플로우(Overflow)

 byte b=127;

 b = b+1; //b에 저장된 값을 1증가, b의값은-128

 byte b=128; //오류






<오버플로우와 언더플로우>








형 변환

 -값의 타입을 다른 타입으로 변환하는 것이다.

 -boolean을 제외한 7개의 기본형은 서로 형변화이 가능하다.

예) float f=1.6f;   //float형 변수 f에 1.6저장

     int i=(int)f;    //f에 저장된 1.6을 int형으로 변환하여 1로 변경되어 변수 i에 저장




형 변환을 생략하는 경우

 byte(1바이트) -> int(4바이트)

 byte b=10;

 int i=b;   // (int)는 생략가능


 int(4바이트) -> byte(1바이트)

 int i2=300;

 byte b2=(byte)i2;  //(byte) 생략불가

※ 바이트크기가 큰쪽->작은쪽은 생략불가하고, 작은쪽->큰쪽은 생략 가능하다. 큰쪽->작은쪽은 값손실이 생기기때문.



<형변환>

 숫자끼리 형변환

 1. byte -> int 로 형변환 : (int)b

 2. int -> byte 로 형변환 : (byte)i

 3. byte -> double 로 형변환 : (double)b

 4. int -> double 로 형변환 : (double)i


 문자열과 숫자의 형변화

 1. 문자열 -> 정수형으로 변환

   Integer.parseInt(변수명);

 2. 정수형 -> 문자열로 변환

   Integer.toString(변수명);

 3. 문자열 -> 더블형으로 변환

   Double.parseDouble(변수명);

 4. 더블형 -> 문자열로 변환

   Double.toString(변수명);






< 문제 >

  각 변수들을 선언하고 초기화하여 아래와 같이 출력하시오.

 [변수 선언]

 num(번호)  name(이름)  kor,mat,eng(국,수,영)  sum(double형 총점)  avg(float형 평균)


 


<정답>

public static void main(String[] args)

{

int num=2014001;

String name="김나라";

int kor=100,mat=98,eng=99;

double sum=kor+mat+eng;  //합계 계산식

float avg=(float)sum/3;   //평균 계산식 double형 sum을 float형으로 형변환


System.out.println("번호:"+num);

System.out.println("이름:"+name);

System.out.println("국어 점수:"+kor);

System.out.println("수학 점수:"+mat);

System.out.println("영어 점수:"+eng);

728x90
반응형

+ Recent posts