자바 분기문



break 문


반복문이 종료되기전 break문을 만나면 반복문을 종료 시킨다


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

//0부터 9까지 출력을한다.

    System.out.println(i);

    

    //i가 5라면.

    if (i == 5) {

    // 반복문은 종료되고 

        break;

    }

    //0부터 5까지만 출력한다.

}


중첩된 반복문을 사용할 경우에는 마지막에 사용된 반복문을 종료 시킨다.


// 0부터 9까지 반복을 한다.

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


    //0부터 9까지 반복을 한다.

    for (int j = 0; j < 10; j++) {

    // i 변수를 출력한다.

        System.out.print(i);

        // i 와 j 가 같다면 

        if(i==j){

        // j 변수로 시작되는 두번째 반복문은 종료된다.

            break;

        }

    }

    // 줄바꿈

    System.out.println("");

}



반복문에 라벨을 지정하고

break 뒤에 라벨을 붙여주면 좀더 명확하게 종료시점을 확인할 수 있다.


first:

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

    second:

    for (int j = 0; j < 10; j++) {

        System.out.print(i);

        if (i == j) {

        // second 라벨을 가진 반복문을 종료한다.

            break second;

       }

    }

    System.out.println("");

}


continue 문


반복문이 continue를 만나면 다음 반복으로 넘어간다.



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

// i를 2로 나누어 0이 된다면.

    if (i % 2 == 0) {

    // 아래 구문을 실행하지 않고 다음 반복으로 넘어간다. 

    // 2,4,6,8 은 건너띔

       continue;

    }

    System.out.println(i);

}


해당 조건식을 만나는 경우 다음 반복으로 건너뛴다.



'Java > study' 카테고리의 다른 글

Retrofit, RxJava, Android Project  (0) 2019.01.30
자바 제네릭  (0) 2018.09.18
자바 반복문  (0) 2018.08.09
자바 제어문  (0) 2018.08.03
자바 자료형 종류  (0) 2018.07.26

맥에서 사용하는 단축키 정리




잘라내기 : cmd + c 대상파일  후 폴더 이동후 cmd + alt + v 파일 이동 됨.


복사 : cmd + c 대상 파일  후 폴더 이동 후  cmd + v 파일 복사.

      대상 파일을 alt 누른 후 드래그 하면 파일 복사.

      

      

파일 미리보기 : 해당 파일 선택 후 space 누르면 간단 미리보기 됨.


열린 창 이동 : cmd + tab


줄 맨처음 이동 : cmd + 왼쪽 화살표 (home)

줄 마지막 이동 : cmd + 오른쪽 화살표 (end)


페이지 맨위 이동 :  cmd + 위 화살표 (page up)

페이지 마지막 이동 : cmd + 아래 화살표 (page down)



뒤로가기 : cmd + [ (파인더[이전폴더이동], 크롬, 사파리, 파이어폭스)

앞으로가기 :  cmd + ] (파인더[다음폴더이동], 크롬, 사파리, 파이어폭스)


파일삭제 : 대상파일 선택 후  cmd + backspace(delete) 키 누르면 파일 삭제



파인더 폴더 이동 : 대상 폴더 선택 후 cmd + 아래 화살표 누르면 하위 폴더로 이동.

               cmd + 위 화살표 누르면 상위 폴더로 이동함.

               파일 일경우 실행함.



command(또는 cmd) ⌘

shift ⇧

option(또는 alt) ⌥

control(또는 ctrl) ⌃

caps lock ⇪

fn

자바 반복문




for 반복문


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

반복할 코드.

}


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

int total = temp + i;


System.out.println("합계는 " + total +" 입니다.");

}


합계는 (0부터 9까지 더한 수) 입니다.


초기화로 변수 i 값을 초기화 하고 증감식에 i 값을 증가시켜 조건식까지 값을 증가시켜 반복한다.

조건식에 변수 i값이 true 면 반복, false면 for문은 종료된다.




int 구구단수 = 2;

System.out.println(구구단수 + " 구구단");


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


System.out.println(구구단수 +" x " + i  + " = " +(구구단수*i) );

}


간단한 구구단 출력 이다. 

i 값은 1부터 시작하여 10보다 작은 9까지 반복하고 종료되는데 

구구단수에 입력된 값과 i값을 곱하여 1부터 9까지의 값을 곱한것을 출력한 후 구구단을 종료한다.

조건식에서 i < 10 대신 i <= 10 으로 변경하면 i는 10까지 반복이 가능하다.




while 반복문


while(조건식){

반복할 코드

}


조건식에 true 일 경우 반복한다. 조건식에 false가 되면 반복은 종료된다.



int count = 0;


while(count < 10){

System.out.println("count는 " + count + " 입니다.");

// 만약 count를 증가시키는 코드가 없다면.

// count는 0이므로 무한 반복을 한다.

count++

}

반복의 상황을 직접 제어 해야 한다.



boolean end = true;

int i = 0 ;

while(end){


i++;


System.out.println(i +"는 증가했습니다.")

if(i == 100){

end = false;

System.out.println("반복문이 종료 되었습니다.")

}

}


조건식에 boolean 변수를 사용할수도 있다.




do{

최초 1회 실행되고 다음 조건식을 체크한다.

반복할 코드.


}while(조건식)



do{} 를 최초 실행한 다음 조건식을 확인하여 코드를 반복한다.



int i = 1;


do{


System.out.println()

// 변수를 조건식에 맞게 제어를 하지 않으면 무한 반복한다.

// i가 10이상일 경우  1회만 실행되고 종료되지만 10이하 일경우

// 조건에 맞게 제어를 해야 반복문을 끝낼수 있다.

i++;

}while(i < 10)




boolean end = true;

        

int i = 0;

do {

    System.out.println(i);

    

    if (i == 10) {

        end = false;

    }

    i++;

} while (end);


boolean 변수를 사용하여 종료될 시점을 정한다음 boolean 변수의 값을 변경하여 반복문을 종료한다.

반복문을 사용하기 적당한 예제는 숫자 맞추기 게임 이다.

입력되는 코드를 입력하여 do{} 위에 만들어진 난수와 비교하여 숫자 맞추기를 시도하고 몇번을 맞추었는지

체크 할수도 있다.




향상된 for문 (for each 문)

java 1.5 부터 지원 되며

배열 또는 컬렉션 사용.


for(대입받을 변수 정의 : 배열 또는 컬랙션){

코드

}



String[] arr = ["x", "y", "z", "1", "2", "3"]


for (String str : arr) {

System.out.println(" " + str);

}

배열 또는 컬렉션의 사이즈 만큼 반복하며 대입받을 변수는 반복될때마다 초기화 되고 해당 배열 또는 컬렉션 인텍스를 가진다.



'Java > study' 카테고리의 다른 글

Retrofit, RxJava, Android Project  (0) 2019.01.30
자바 제네릭  (0) 2018.09.18
자바 분기문(break, continue)  (0) 2018.08.14
자바 제어문  (0) 2018.08.03
자바 자료형 종류  (0) 2018.07.26

자바 제어문


제어문

if(조건식 == true 또는 false){ 코드 실행.}

: ()어떠한 조건식이 true 또는 false 일때  {  } 안에 코드를 수행한다.

예제

int count = 10;

// 만약 count 라는 변수가 10이 맞다면.

if(count == 10){

// 화면에 맞다는 문구를 출력한다.

System.out.println(count + "는 10이 맞습니다.");

}else{

// 화면에 맞지 않다는 문구를 출력한다.

System.out.println(count + "는 10이 아닙니다..");

}


if 문안에 또 if문을 사용할 수 있다. 중첩된 if문을 사용하여 조건을 더 확인할 수 있다.

int count = 10;

if(count >= 10){

//10보다 크거나 같다.

if(count ==10){

System.out.println(count +"는 10 입니다.");

}else{

System.out.println(count +"는 10보다 큰 수입니다.");

}

}else{

System.out.println(count +"는 10보다 작습니다.");

}



if문에 else if() 로 또다른 조건을 걸수가 있다. 

int count =10;

//인트 타입의 변수 count를 숫자 10과 비교하여 true이면  

if(count == 10){

// 화면에 문구를 출력합니다.

System.out.println(count +"는 10입니다.");

}

// 위 조건문에서 false로 내려오는경우 다시한번 조건문을 비교합니다.

// count가 10보다 큰 11이라면 위 if문에서 false가되고 

// 아래 else if 문에서 true이다.

else if( count > 10){

// count 가 10보다 크므로 해당 문구를 출력합니다.

System.out.println(count +"는 10보다 큰 수 입니다.");

}

// 마지막 else 문은 count 모든 조건에 맞지 않을때 이다.

// count가 10 이하의 수 라면 위 2개의 조건을 거치고 난 다음

// 마지막 else 문으로 해당 소스를 실행한다.

else{

// count 변수가 10보다 작은수 이면 화면에 문구를 출력합니다.

System.out.println(count +"는 10보다 작은 수 입니다.");

}

count가 10보다 작을때 마지막 else 문을 삭제하면 화면에 아무것도 출력하지 않는다.

if (count == 10) {

            System.out.println(count + "는 10입니다.");

        } else if (count > 10) {

            System.out.println(count + "는 10보다 큰 수 입니다.");

        }

//else {

// 실행되지 않는다. 이유는 모든 조건이 맞지 않을때 마지막 else문을 실행 하기 때문이다.

// 따라서 if 문 맨 아래 else가 있다면 그것이 실행되지만 

// else가 없다면 모든 조건이 맞지 않을때 어떠한 것도 실행되지 않는다.

    //}

switch() { case ..  }

switch(변수) {

case 변수:  

break;

default :

break;

}

입력 받은 변수를 확인하여 case 로 지정되어 있다면 지정된 case 문을 실행하고 없다면 default 문을 실행한다. 

case없고 default도 없다면 아무것도 실행되지 않는다.

switch 변수 값에는 정수형 또는 char 값 그리고 java 7에서는 String 타입의 변수도 넣을 수 있다.

다만 변수의 참조 타입이 모두 같아야 한다.

int month = 1;

switch(month){

case 1:

System.out.println("1월 입니다.")

break;

case 2:

System.out.println("2월 입니다.")

break;

case 3:

System.out.println("3월 입니다.")

break;

default:

System.out.println("1~12월 까지 인데 잘못 입력하셨습니다.")

break;

}

위 스위치 문은 if문으로 대체가 가능하다.

if(month==1){

System.out.println("1월 입니다.")

}else if(month==2){

System.out.println("2월 입니다.")

}else if(month==3){

System.out.println("3월 입니다.")

}else {

System.out.println("1~12월 까지 인데 잘못 입력하셨습니다.")

}

'Java > study' 카테고리의 다른 글

Retrofit, RxJava, Android Project  (0) 2019.01.30
자바 제네릭  (0) 2018.09.18
자바 분기문(break, continue)  (0) 2018.08.14
자바 반복문  (0) 2018.08.09
자바 자료형 종류  (0) 2018.07.26

RxJava



함수형 프로그래밍, 비동기 작업, 서버연동, 옵저버 패턴, 마블 다이어그램.

학습 곡선이 높다고 표현한다. 어떤식으로 작업을 해야 쉽게 이해가 될 수 있을까?



기본 


Observable : 데이터 생성을 위한 시작 클래스. 정적 팩토리함수로 인스턴스를 생성. 


just       : 데이터를 발행하는 정적팩토리 함수. 

     데이터를 발행하려는 메서드.하나의 인자 또는 최대 10개 까지의 같은 타입의 인자를 받음.

             subscribe()를 호출해야 실제 데이터 발행이 진행됨.


subscribe  : 데이터를 구독하는 함수. Observable에 데이터를 발행하라고 요구 (이함수가 없으면 RxJava 가 실해되지 않는다.)



Observable의 팩토리 함수 


create(), just(), from(), 

fromArray(), fromIterable(), fromCallable(), fromFuture(),

interval(), range(), timer(), defer()




Single : 오직 1개의 데이터만 발행하도록 한정됨.

  보통 결과가 유일한 서버api를 호출할때 사용.

  배열 및 리스트로 값을 받아도 1번의 값만 동작.



Flowable : 뜨거운 Observable 에서 데이터를 처리할때 배압을 고려할때 사용.

           배압은 Observable에서 테이타를 발행하는 속도와 구독자의 처리하는 속도의 차이가 발생할때 사용.

   Observable과 같은 방법으로 사용 하여도 된다.




기본 예제


   //자바 8 메서드 레퍼런스활용

   Observable.just("start Rxjava", "Rxjava end").subscribe(System.out::println);


   //람다식 적용.

   Observable.just("start Rxjava", "Rxjava end").subscribe(

           s -> {

               System.out.println("실행결과 : " + s);

       }

   );


   // 람다식 적용안함.

   Observable.just("start Rxjava", "Rxjava end").subscribe(new Consumer<String>() {

       @Override

       public void accept(String s) throws Exception {


           System.out.println("실행결과 : " + s);


       }

   });


   Single.just("fsdjaklfjasdklf").subscribe(System.out::println);


   Flowable.just("start Rxjava", "Rxjava end").subscribe(System.out::println);




연산자 활용


interval() : 일정시간 간격으로 데이터 흐름을 생성.

     주어진 시간을 간격으로 0부터 1씩 증가하는 Long 객체를 발행.



















'Android > study' 카테고리의 다른 글

MVP 패턴  (0) 2019.04.25
안드로이드 코틀린 프로젝트 디펜던시  (0) 2019.01.25
안드로이드 액티비티 및 프래그먼트.  (0) 2018.09.27
레트로핏, okhttp  (0) 2018.08.27

+ Recent posts