저는 처음 입문하여서 진도를 따라가기가 너무 어려워서 주말동안 이제까지 배웠던걸 총 복습해보았습니다 .
#자바를 왜 배우는가 ? 실무에서 많이사용하기때문에
개념만 안다고 넘기지말고 문제를풀어서 내꺼화하자 프로그램은 머리로 하는게 아니고 손으로 해야한다 .
#개발환경설정
#자바프로그램
<변수의 명명 규칙>
int a = 1; , int b = 0; , b=++a 은 a를 먼저 증가시키고 b에 대입 >출력해보면 a=2 , b=2
후위증감연산자
int a = 1; , int b = 0; , b=a++ 은 a의 현재 값을 b에 먼저대입하고 그후 a값 증가시킴> a=2 ,b=1
cf) 증감연산자를 단독으로 사용하는 경우에는 다른연산이없기 때문에 전위든후위든 결과같다
-&&(and) :둘다 참일때 참 , ||(or) : 둘다 거짓일때 거짓 , ! :참이면 거짓 , 거짓이면 참
ex) int a = 15 ; 일때 a는 10 보다 크고 20보다 작다 boolean result = 10<a && a<20;
출력하면 참
을 통한 조건검사도 모두 실행한다 ) 걸 방지하고 코드 중복방지하여 효율성을 향상시키기위해씀.
cf if 에서 중괄호를 안사용해도 한줄에대한건 출력 가능하지만 두번째 줄에대한건 if문과 별개로 출력 된다
그러므로 중괄호 쓰는게 좋다
ex )int age = 18 ; , String status = (age >= 18) ? "성인" : :미성년자";
원래는 int age = 18; String satus ; if ( age >=18){status ="성인"; } else { satus = "미성년자")}
이걸 만약에 100번 반복한다고하면 복붙하기 좀그렇지않나 ?
그리고 코드 를 바꾸거나 출력문구 바꾸려면 일일히 다바꿔야하자나
이런문제를 해결하기위해 배우려하는게 반복문
while (조건식){코드) :조건식이 참이면 코드 실행 조건식이 거짓이면 while문벗어남
즉 거짓일때까지 무한반복
int count =0;
while( count<3) { count = count +1; System.out.println("현재 숫자는:"+count); }
응용) 1부터 하나씩증가하는 수를 3번 더해라
단순무식하게
int sum = 0;
sum= sum+1;
System.out.println("i="+1+" sum="+sum);
sum= sum+2;
System.out.println("i="+1+" sum="+sum);
sum= sum+3;
System.out.println("i="+1+" sum="+sum);
만약 10부터 하나씩증가하는 수를 3번더하라고 변경이되면 바꿀게많다 so
변경에 취악하므로 변경되는 부분을 변수 i로 만들어보자
int sum = 0;
int i =1;
sum= sum+i;
System.out.println("i="+1+" sum="+sum);
i++;
sum= sum+i;
System.out.println("i="+1+" sum="+sum);
i++
sum= sum+i;
System.out.println("i="+1+" sum="+sum);
즉 변수 i 덕분에 i의 값만 변경하면 나머지 코드를 전혀 변경하지않아도됌
새로운문제 : i부터 하나씩 증가하는 수를 endNum(마지막수) 까지 더해라
이럴때 while 문을 쓰는거다 이것도 1부터 하나씩 증가하는 수를 3번더해라
int sum =0;
int i =1;
int endNum = 3;
while(i<=endNum){"i="+i+" sum="+sum);}
i++
조건에 만족하진 않아도 한번은 현재값을 출력하고싶을때 사용
int i =10;
do{System.out.println("현재 숫자는:"+i); i++; } while(i<3) ;
일단실행은하고 조건문만남
ex) 1부터 시작해서 숫자를 계속 누적해서 더하다가 합계가 10보다 처음으로 큰값은 얼마인가
int sum = 0;
int i =1;
while(true){sum=sum+1; if(sum>10) {System.out.println("합이 10보다 크면종료: i="+i+"sum="+sum );
break; }
i++;}
1부터 5까지 숫자를 출력하는데 숫자가 3일떄는 출력을 건너뛰어라
int i = 1;
while(i <= 5){System.out.println(if(i == 3) { i++; continue} System.out.println(i); i++}}
for 문(초기식(주로 반복횟수와 관련된 변수 선언할때 사용); 조건식; 증감식;{코드}
ex) i부터 하나씩 증가하는 수를 endNum(마지막수) 까지 더해라
int sum =0;
endnum =3;
for(int i =1; i<=endNum;i++ ){sum = sum+i; System.out.println("i="+i+"sum=+sum);}
이중반복문 : 반복문 안에 반복문 예를들어 구구단
ex) for(int i = 1; i<=9; i++){for(int j =1; J<=9; j++){ System.out.println(i+""+j+"="+ij);}
같은 타입의 변수를 반복해서 선언하고 반복해서 사용하는 문제를 해결하기위해 쓰임
ex) 학생 5명 점수를 출력해보자 >반복문으로 해결할거같으나 no , why? 변수명은 더하고 뺄수없이 그대로써야함
배열 선언 : int[] students;(인트배열변수선언) ,students=new int[5];(배열생성)
연결된 5개 그릇이 있는 인트형변수 5개만든다는 뜻
배열을 생성하고 나면 자바는메모리 어딘가있는 이 배열에 접근할수있는 참조값(주소)를 반환
int[] students = new int[5]; 배열생성 , int[] students =x00l ; new int[5]의 결과로 참조값반환
students = x001 로 최종결과가나옴 > 참조값 반환하느 이유는 int 배열에 접근하기위해서
배열 사용 : [] 사이에 숫자 번호를 넣어줘야하는데, 배열의 위치를 나타내는숫자를 인덱스라함
cf) 배열은 0부터 시작한다.
즉 배열을 사용하면 참조값을 통해 실제 배열에 접근을하고 인덱스를 통해 원하는요소 찾는다.
ex) int[] students; (배열변수선언)
students = new int[5]; (배열 생성)
(변수값대입)
students[0] = 90; ,students[1] = 80; ,students[2] = 70; ,students[3] = 60; ,students[4] = 50;
(변수값사용)
for(int i =0; i<5; i++){System.out.println("학생"+(i+1)+"점수"+student[i];)}
여기서 특별한게 배열변수.length 라는 특별한 기능이있다. 즉 i<5 대신 사용가능.
또한 배열생성과 초기화를 동시에 할수있는데 ,
int[] student= new int[]{90,80,70,60,50};
for(int i =0; i<5; i++){System.out.println("학생"+(i+1)+"점수"+student[i];)}
와우.... 우리 동원님 쵝오에요... 진짜 열심히 해주시는 모습이 정말 내 멘토 생활의 원동력입니다 :-)