< Scanner 클래스 >
입력한 값을 읽어 들이는 기능을 가진 클래스!
Scanner s = new Scanner(System.in) //메모리에 스캐너 객체를 생성한다.
s.next() : 엔터키를 누르는 순간 입력한 값을 String타입으로 읽어 들임,
(공백이 있으면 공백 앞까지. ABC DEF -> ABC)
s.nextLine() 엔터키를 누르는 순간 입력한 전체 값을 String타입으로 읽어 들임
(공백이 있어도 다 가져옴. ABC DEF -> ABC DEF)
s.nextInt(): 엔터키를 누르는 순간 입력한 숫자값을 int타입으로 읽어 들임
s.nextDouble():입력한 실수 값을 double타입으로 읽어 들임
< 출력문 >
System.out.print() : ()에 전달받은 값 출력. 하나만 넣을 수 있음.
System.out.println() : ()에 전달받은 값 출력 후 줄 바꿈(커서가 한 칸 내려감)
( 이클립스에서 sysout까지 쓰고 ctrl+space 누르면 자동완성☆ )
ln: \n Line Feed 커서의 현재 위치에서 바로 아래로 이동
0개(빈칸, 출력 내용 없이 줄만 바꿔준다.)나 1개의 데이터를 받아서 출력한다.
System.out.printf("서식",...n) : format. 서식에 맞춰 데이터 넣고 출력함
%d :정수
%s : 문자열
%f : 실수
ex) int a = 1;
String str = 김자바;
System.out.printf("%d번 학생은 %s입니다.", a, str);
-> 1번 학생은 김자바입니다. 출력
< 조건문 >
조건에 따라 수행문이 실행되도록 프로그래밍하는 것이다.
if 문
if - else 문
if - else if - else문
if와 else if 에는 (조건식)을 지정해 줘야 한다.
else는 그 외의 경우에 실행된다.
if는 필수고 else if와 else는 선택이라는 거다.
else if는 여러 개 쓸 수 있다.
(수행문이 한 줄이라면 {} 생략 가능하다.)
if (조건식1) {
수행문1;
}else if(조건식2){
수행문2;
}else if(조건식3){
수행문3;
}else{
수행문4;
}
처음 조건식1이 true면 수행문1만 수행하고 if문 종료 그 뒤에 else if, else는 다 실행되지 않는다.
처음 조건식1이 false면 다음 조건식으로 넘어간다. 그 뒤로도 동일
ex)
int score = 70;
int grade;
if ( score >= 90 ) {
grade = 1;
}else if( score >= 80 ){
grade = 2;
}else if( score >= 70 ){
grade = 3;
}else{
grade = 4;
}
점수에 따라 등급을 정하는 if문을 만들어 봤다.
점수가 90점 이상이면 1등급, 80점 이상이면 2등급, 70점 이상이면 3등급, 그 외는 4등급.
if문은 위에서부터 실행되기 때문에 첫 if조건문이 false라면 다음 조건문인 else if로 넘어간다.
첫 if조건문인 ( score >= 90 )이 false라면 89 이하라는 것.
즉 2번째 조건인 else if( score >= 80 )은 80 이상 89 이하가 된다.
점수가 70이니 세 번째 else if( score >= 70 ) 조건이 true가 되고
grade = 3; 이라는 수행문이 수행되며, 그 뒤는 실행하지 않는다.
* 조건 연산자를 저번 글에 썼었다. 간단한 조건문은 조건 연산자로 구현할 수 있다.
ex) if ( a > b )
max = a;
else
max = b;
4줄이나 잡아먹는 이런 간단한 if문은
max = ( a > b ) ? a : b;
조건 연산자 단 한 줄로 줄일 수 도 있는 것.
switch - case 문
조건식의 결과 값이 정수 또는 문자열이고 그 경우에 따라 수행문이 결정될 때 사용한다.
switch(변수){
case 값1 : 수행문1;
break;
case 값2 : 수행문2;
break;
case 값3 : 수행문3;
break;
default : 수행문 4;
}
변수의 값이 값1이면 수행문1 실행.
값 1,2,3 외의 값이면 default 수행문 실행.
if문처럼 true값일 때 바로 멈추는 게 아니라서
맞는 case를 찾아서 수행할 때 종료될 수 있도록 수행문마다 break;를 걸어줘야 한다.
걸지 않는 경우 출력은 잘 나오겠지만 불필요한 연산을 프로그램이 하고 있겠지.. = 느려지겠지!! = 좋은 코드가 아니다.
* Java 7부터 case값에 String사용 가능하다.
< 반복문 >
조건이 만족할 때까지 수행문을 반복적으로 수행한다.
조건문과 반복 가능 여부를 정확하게 코딩해줘야 한다.
while 문
조건식이 true인 동안 수행문을 반복한다.
하나의 조건에 대해 반복 수행할 때 주로 사용
while(조건식) {
수행문1;
...
}
조건식이 true인 동안 수행문 1을 반복하고 false가 되는 순간 while문은 끝나고 다음 줄로 넘어간다.
do while 문
수행문을 한번 무조건 수행하고 나서 조건식이 true인 경우 수행문을 반복한다.
수행문이 반드시 한번 이상 수행돼야 하는 경우에 사용한다.
do{
수행문1;
...
}while(조건식){
수행문2;
...
}
do 수행문1은 무조건 수행하고 while 조건식이 true면 수행문2를 반복하고 false가 되는 순간 while문 끝나고 다음 줄로
for 문
반복문 중 가장 많이 사용한다고 한다! 꼭 기억해 두자.
특정 범위의 수, 횟수가 조건인 경우에 주로 사용한다.
for( 초기화식 ; 조건식 ; 증감식 ){
수행문;
}
초기화식은 처음 한번만 실행된다. 조건식이 충족되면 수행문을 수행하고 증감식이 수행되며 조건식부터 반복한다.
초기화식 1회 실행
조건식 true > 수행문 수행 > 증감식 수행 > 조건식 확인 반복
조건식 false > for문 종료
ex) int num;
for ( num = 1; num <= 3; num++){
System.out.println(num);
}
int타입 변수 num을 1로 초기화시킨다.
1 <= 3 true > 1 출력 > 1을 증가시킨다
2 <= 3 true > 2 출력 > 1을 증가시킨다
3 <= 3 true > 3 출력 > 1을 증가시킨다
4 <= 3 false > for문 종료
* 무한 반복시키기
while( ture ){ 수행문; }
do{ 수행문; }while( ture ){ 수행문; }
for(;;){ 수행문; }
* 중첩 반복문
반복문 내부에 또 반복문을 사용할 수 있다.
구구단 예제가 많이 나온다
for(dan = 2; dan <= 9; dan++){ //2단부터 9단까지 반복하는 외부 반복문
for(num = 1; num <= 9; num++){ //각 단에서 1~9 곱하기를 반복하는 내부 반복문
System.out.println(dan + "x" + num + "=" + dan*num);
}
System.out.println(); //빈줄 출력 한 줄 띄울 때 사용
}
* 출력문에 변수와 문자열, 문자열과 문자열을 이어서 쓸 때 + 사용
* continue 문
반복문 실행 중 continue문을 만나면 이후 수행문을 수행하지 않고
조건식이나 증감식을 수행한다. 즉 건너뛰기!
반복문 내부에 조건문과 함께 사용하는 편.
* break 문
반복문 실행 중 break문을 만나면 반복문 종료.
중첩된 반복문 안에 있는 경우 가장 가까운 반복문 하나만 종료.
반복문 내부에 조건문과 함께 사용하는 편.
스캐너 출력문은 기본!!!
if와 for문도 외우자 정말 많이 쓴다고 한다!
'JAVA' 카테고리의 다른 글
Java 오버로딩, 접근제어자, 캡슐화, 싱글턴 (0) | 2021.11.30 |
---|---|
Java 객체 지향 프로그래밍 / 변수, 메서드, 생성자의 선언과 사용 (0) | 2021.11.29 |
Java 연산자 (0) | 2021.11.25 |
Java 용어 정리 - 변수, 자료형,형변환 (0) | 2021.11.24 |
Java JDK , Eclipse설치 (0) | 2021.11.23 |