스파르타 내일배움캠프 사전캠프 2일차 내용이다.
이번 자바 기본문법은 조건문, 반복문 그리고 배열에 대한것들을 배웠다.
조건문은 기본적으로 알고있던 if문에관한 내용이었는데, 기본 형식은 아래와 같았다.
if.
if(/*조건식*/){
//조건식이 참일경우 실행될 코드
}
else if(조건식){
//위 조건식이 아니고 이 조건식이 참일경우 실행될 코드
}
else{
//위 조건식들이 모두 거짓일경우 실행할 코드
}
if문의 기본적이 틀은 다른 언어들과 크게 다르지 않았다.
새롭게 배운부분은 이부분이었는데,
문자열을 비교할때 위와같이 equals함수를 이용해 비교를하고, 대소문자를 구분하지 않는 구별을 할땐 equalsIgnoreCase를 이용해야 한다는 것이다. 문자열은 참 언제나 복잡하다.
Switch.
다음은 스위치 문인데 if문과 같이 조건문이다. 비교할 값이 많을 때 주로 사용되며, 조건식에 정수나 문자열만 사용가능하다.
기본형식은
switch(조건식){
case 1:
//1일경우
break;
case 2:
//2일경우
break;
case 3:
//3일경우
break;
.
.
.
default:
//위 아무것도 아닐경우
}
기본형식은 위와같은데, 만약 break를 입력하지 않는다면 조건에 걸리는 모든 case를 실행한다.
그리고 default는 생략해주어도 된다.
다음은 반복문인데, 반복문 또한 for문으로 C언어와 그렇게 다르지 않은 모습을 보여준다.
for.
for문의 기본형식은 다음과같다.
for(변수 초기화 ; 조건문 ;증감식)
{
//조건식이 참일 때 반복적으로 실행할 코드
}
반복문은 사용될 때가 매우 많은데 단순반복작업의 코드를 혁신적으로 줄여준다.
나중에 배열을 배우면 더욱 유용하게 사용할 수 있는 문법이다.
While.
while문은 무한반복문으로 많이 사용된다.
기본 형식은 아래와 같은데
while(조건식){
//실행될 코드
}
생각보다 간단하다. 저 조건식 안에 true 또는 1 과같은 참을 뜻하는 것을 넣을경우 무한히 돌게된다. 필요할 때 break로 반복문을 탈출하도록 설계할 수 있으나 무한루프로 프로그램이 먹통이 될 수 있으므로 추천하는 방법은 아니다.
조건식을 i<0와 같이 두고 코드내에 i--;를 넣어줌으로써 i가 음수가 될때까지 1씩 감소하며 반복하는 코드를 만들 수도 있다.
다음은 랜덤정수를 뽑는 법인데, Math라이브러리 안에 들어있었다.
do-while.
while과 비슷한 do-while이 있다.
do{
//조건이 참일 시 실행될 코드
}while(조건)
이렇게 보면 while과같으나 조건검사가 뒤에 이루어지기 때문에 최초한번은 무조건 실행된다는 특징이 있다.
i++같이 후열에 증감 하는 연산자를 코드내에 사용시 값이 증가된 뒤 조건을 확인하도록 만들 수도 있다.
break.
앞서 소개한 바 있는 break문이다.
break말 그대로 만나면 반복문을 깨고 나온다.
Continue.
다음은 continue다.
이것도 반복문에 사용되는데 만나는 순간 반복문의 끝으로 이동한다.
조건이 여전히 참이라면 반복문이 끝나는 것은 아니며, 일정 숫자나 필요에 의해서 반복작업을 건너뛸 때 사용되곤한다.
반복문 이름붙이기.
이건 나도 처음 배워봤는데 반복문 자체에 이름을 붙여서 break 반복문이름; 으로 그 반복문만 깨고 나올 수 있는 문법이 존재 했다.
class Control6_3 {
public static void main(String[] args) {
allLoop :
for (int i = 2; i < 10; i++) {
for (int j = 1; j < 10; j++) {
if (i == 5) {
break allLoop;
}
System.out.println(i + " * " + j + " = " + (i * j));
}
}
}
}
위 코드 같이 break allLoop;를 만나는 순간 allLoop:로 선언된 아래 for문을 탈출한다.
그냥 break;를 쓰면 하나의 반복문만 탈출하지만 이름을 지정하면 가장 바깥쪽 반복문을 바로 깨고 나올 수 있다. 생각보다 유용하게 사용할 수 있을 듯 하다.
Random.
(int)(Math.random() * 11)
앞에(int)를 붙여서 형변환을 해줘야한다.
위 처럼 하면 0~10의 랜덤한 정수가 출력되게된다.
중요한건 순서가 Math.random() * 11 이 먼저 연산되고 형변환이 이루어져야 한다는건데, random값을 형변환하고 곱하면 형변환시 0이 되어 버리기 때문에 모든값이 0으로 고정된다.
(int) Math.random() * (최댓값-최소값+1) + 최소값
random은 0.0~1.0사이의 double형 실수를 랜덤으로 뽑아낸다 그렇기 때문에 위와같이 범위를 지정해 줄 수 있다.
양이 많으므로 한번 끊고 다음 글에서 이어 쓰겠다.