시즌 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 처럼.. )
댓글
댓글 쓰기