2020.10.09 생활코딩 유투브 공부 ( 모든 출처 : 유투버 생활코딩 ) 1 부 : 절차 지향 프로그래밍

시즌 1 

    절차 지향 프로그래밍 


break;  


반복문 : 

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

if ( i == 5 ) 

    break;

System.out.println("coding " + i ) 

}

i가 1,2,3,4 까지만 나온다. 




* if 뒤에 실행되는게 한줄짜리다 ( 지금 break ; 처럼 ) 그러면 중괄호 {} 를 생략할 수 있다. 하지만 만약 여러줄이면 중괄호 {} 를 반드시 써줘야 한다. 

반복문뒤에 break가 있다면 중단이 되게 된다. 

반복문을 바로 종료시킬 수 있다. : break 


continue 

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

if ( i == 5 ) 

    continue;

System.out.println("coding " + i ) 

}

i가 1,2,3,4,6,7,8,9 까지 실행된다. ( continue를 만나면 그 순간에 일단 멈추고 다시 for문으로 돌아가서 실행이된다. 즉 i 가 5일때는 System~~ 이 실행이 안된다. 


반복문의 중첩 


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

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

i와 j 두개는 서로 다른 문자로 써줘야 한다. 



배열 


배열도 데이터타입이다. 

1. String [] classGroup = {     ,     ,    ,     , }; 

String[] 배열안에 들어갈 수 있는 것들의 타입이다. 


classGroup[0] classGroup[1] classGroup[2] classGroup[3] .... 


2. String [] classGroup = new String[4] ; 

classGroup[0] = "이수정" ; 

classGroup.length 는 4 

classGroup[1] = " 이리아"; 

classGroupin.length 는 4 


반복문과 배열의 조화 


for(int i = 0 ; i < members.length; i++ ) { 

String member = member[i]; 


for - each 

초기화 - 반복조건 - 반복실행 -> 문법적으로 승화 

String[] members = { "최진혁" , "최유빈" , "한이람" } ; 

for(String e : members ) { 

System.out.println(e+"이 상담을 받았습니다 " ) ; 

e 라는 변수에다가 members 에서 하나씩 꺼내서 넣어주는것 

e에 members  에 있는 변수 "최진혁" , "최유빈" , "한이람" 등을 넣어주는것 


while -> for 


}


오류 

String[] members = {"최진혁" , "최유빈" , "한이람" } ; 

System.out.println(members[3]); 


-> 만든 배열의 길이만큼만 숫자를 넣어야한다. 


메소드 method 

(=함수 function)

 

main -> 실행되기를 원하는 것을 위치 시켰다. 

main 이라는 것이 메소드다. 


반복문, 조건문, 변수, 상수 


public static void main ( String[] args) { 

 

}

메소드의 정의와 호출


public class MethodDemo1 { 

    public static void numbering () { 

        int i = 0 ; 

        while ( i < 10 ) { 

            System.out.println(i); 

            i++ ; 

     } 

}

-> 굵은 글씨가 메소드의 정의부분



public static void main( String [] args ) { 

    numbering(); 

}

--> 요 부분이 method 호출 부분 



* 메소드뒤에 () ; 하고 끝나면 호출이고 메소드이름뒤에 {} 대괄호가나오면 메소드의 정의부분이라고 컴퓨터가 인식한다. 


* 메인부분에 메소드 대신 내가 호출한 부분을 가져다가 써도 두개가 같은 의미 : 

public static void main( String [] args ) { 

 int i = 0 ; 

        while ( i < 10 ) { 

            System.out.println(i); 

            i++ ; 

}


main 메소드를 구현해 놓게 되면 자바가 실행이 될때 main 이라고하는 메소드를 호출하도록 약속.

 

메소드 입력 


*메소드안에 고정적인것과 가정적인 것이 있는데 메소드안에있는 고정적인 것만을 남기고 가변적인 것을 뺴서 


numbering(int limit ) 

--> 여기있는 것 int limit 은 parameter 매개변수라고 하고 


numbering(5); -> 호출할때 가변적인 것을 넣어준다.

---> 호출할 때 넣어주는 5는 인자라고 한다. argument 


하지만 혼용해서 쓰이기도 한다. 하지만 엄격하게 구분해서 잘 이해해 놓자. 

*입력값을 여러개를 넣을 수 있다. ( 2개이상도 ) 



메소드의 출력 : return 



*참고 :  out.txt 라는 파일에 numbering 이라는 메소드가 반환한 값을 저장한다.  

프로젝트의 루트디렉토리에 out.txt 라는 파일이 생성된 것을 볼 수 있다. 


System.out.println(result); (메소드에서 온 값을 메인에서 출력해보고 ) 

try { 

    BufferedWriter out = new BufferedWriter ( new FileWriter ( "out.txt")) ; 

    out.write (result); 

    out.close () ; 


} catch ( IOException e ) { 


자바는 리턴을 만나는 순간 리턴 뒤에 있는 값을 리턴 밖으로 반환하면서 끝난다. 

public static int one () { 

    return 1; 

    return 2;

    ruturn 3;



public static void main (String [] args) { 

    System.out.println(one()) ; 

}


--> 메인에서는 return 1 을 실행하고 그 뒤에 있는 나머지 리턴들로 도달하지 않는데 

혹시나 개발자가 실수를 한게 아닐까 하고 컴파일에러를 띄운다. 


--> 리턴은 한번만 등장해야 하는 것은 아니다. 

public class ReturnDemo2 { 

    public static String num (int i ) { 

        if( i==0){

            return "zero"; 

        } else if ( i == 1 ) { 

            return "one" ; 

        } else if ( i == 2 ) { 

            return "two"; 

        }

            return "none" ; 


public static void main (String [] args) { 

System.out.println(num(1)); 

public static void main (String[] args ) { 

System.out.println(num(1)); 


여러개의 return 값을 받기 : 배열을 사용한다.  


배열 . -> 메소드와도 굉장히 밀접하다. 


public class ReturnDemo4 { 

    public static String[] getMemberse() {

    //getMemberse() 는 배열이다.  

        String[] members = { "최진혁" , "최유빈", "한이람" } ; 

        return members; 


public static void main(String[] args) { 

    String[] members = getMembers(); 

    --> getMmbers 가 리턴하는 값은 배열  



입력과 출력 ( IO : input output ) 


프로그램 안으로 들어오는 정보 : 입력 

프로그램 밖으로 빼네는 것 : 출력 

 

class InputDemo { 

    public static void main (String[]  args) { 

        System.out.println(args.length); 


}


Java 입력과 출력 앱이 실행중에 데이터를 입력 1 

scanner : 라이브러리 중 1개 재활용하기 쉽도록 만들어놨다가 쉽게 사용할 수 있도록  . 


import java.util.Scanner  // java util 이라고하는 패키지에 들어있는 Scanner 라고 하는 녀석을 읽어온다. 

public class ScannerDemo { 

    public static void main (String[] args ) { 

        Scanner sc = new Scanner(System.in); 

        int i = sc.nextInt(); 

        System.out.println(i*1000); 

        sc.close(); 

    }


}



 Scanner sc = new Scanner(System.in); 

System.in 은 사용자가 입력한값 그것을 Scan하겠다. ( Scanner 라는 객체를 생성 ) 

 int i = sc.nextInt(); 

Scanner 라고 하는 객체는 nextInt 라고 하는 메소드를 가지고 있다. ( scanner 객체에 있는 method인 nextInt를 호출하는것 

실행이 멈춰서 기다리고있는상태 

사용자가 어떤 값을 CONSOL에 입력하는데 nextInt 이기 때문에 Int 만 입력이 가능하다 

System.out.println(i*1000);  사용자가 입력한 i 값을 받아서 이 값이 출력이 된다. 


//스캐너를 사용하기 위해서는 구동하려고 하는 자바 어플리케이션에 load 를 해야한다. : import 를 사용한다. 



입력과 출력앱이 실행중에 데이터를 입력 2 


import java.util.Scanner; 

public class Scanner2Demo { 

public static void main(String[] args) { 

    Scanner sc = new Scanner(System.in); 

    while(sc.hasNextInt()) { 

        System.out.println(sc.nextInt()*1000); 

     

        sc.close(); 


}

//sc.hasNextInt() scanner 가 가지고 있는 메소드인  hasNextInt() 를 호출하고 있는것 

while(sc.hasNextInt()) 사용자가 입력한 값이 숫자 Int 라면 true 를 리턴하고 문자등등이라면 false 를 리턴한다. 


만약 false 라면 sc.close() 가 실행된다. 

while(false) 가 되면 프로그램은 끝나고 바깥쪽으로 나가서 우리가 더이상 어떤 값도 다시 입력할 수 없다. 


JAVA = 입력과 출력 (6/6) 여러형태의 입출력 


import java.util.Scanner ; 


public class Scanner3Demo { 

    public static void main(String[] args) { 

        try{ 

            File file = new File("out.txt"); 

            Scanner sc = new Scanner(file); 

            while(sc.hasNextInt()) { 

                System.out.println(sc.nextInt()*1000); 

             }

              sc.close(); 

        } catch(FileNotFoundException e ) { 

               e.printStackTrace();   //에러의 내용을 출력해주세요 

        }

        }

   }


*GUI : GRAFIC USER INTERFACE 

*CLI : COMMAND LINE INTERFACE ( COMMAND 처럼.. ) 



댓글