* 전일 연산자 복습 : 관계연산자 유의할 부분 (자주 사용될만한 문구인진 모르겠지만..)
while (n++<10){
s+=n;
}System.out.printf(n+", "+s);
에서 n값을 10과 비교를 먼저 하고 값을 1증가한다.
n값이 10이 되어도 비교하고 값 1증가 후 빠져나와 n의 출력값은 11이 된다.
- 반복횟수가 명확하지 않을 땐 while문이 일반적이다.
* switch ~ case 문
- switch문으로 작성하는 모든 것은 if로 구현이 가능하다.
- 다중선택문 이라고도 하며 switch(수식)의 수식값에 따라 case의 상수값에 해당되는
문장을 실행한다.
- break; 로 멈춰주지 않으면 switch문의 case가 끝날 때 까지 계속 실행 된다.
- case에 swith문의 수식을 만족하는 값이 없을 경우 default 내의 문장을 실행한다.
(default값은 불필요시 빼도 관계 없고 위치 또한 각 문장끝 break; 가 기재되어 있다면 위치도 상관 없다)
- switch(n) : n에는 수식과 숫자, 문자 입력 가능
- case n : n에는 숫자, 문자 입력 가능(문자열은 입력할 수 없다)
- 예제: break문의 활용
-
public class Test1
-
int a=3;
-
a=5;
-
switch(a){
-
break;
-
//break가 없을 때 break가 나오거나 switch문이 끝날 때 까지 계속 실행됨.
-
break;
-
break;
-
break;
-
- 결과
- 예제 : 점수를 입력받아 학점 출력하기
-
import java.io.IOException;
-
import java.io.BufferedReader;
-
import java.io.InputStreamReader;
-
-
public class Test2{
-
int score;
-
char pan;
-
-
-
if (score>=0 && score<=100){ // 점수 범위 설정하려 한것..
-
switch(score/10){ // 점수를 10으로 나눈 몫, switch(조건식)가능
-
//조건식 없이 그냥 score쓰고 100,99,98.. 하려 했다니.. 잠이 덜깼나..
-
case 10:
-
case 9: pan='A'; break;
-
case 8: pan='B'; break;
-
case 7: pan='C'; break;
-
case 6: pan='D'; break;
-
default: pan='F';
-
}
-
}
-
}
-
}
- 결과
* do while 문
- 형식 : do{}안의 실행문을 선실행 1회 후 while(조건식)의 조건식을 나중에 비교하여 반복여부를 결정
do {
// 실행문;
} while(조건식);
- 예제 : 1~10까지의 합 구하기 / while문의 실행순서 / do while문의 실행순서
-
public class Test3
-
int s=0, n=0;
-
-
do{
-
n++;
-
s+=n;
-
}while (n<10);
-
-
n=10;
-
while (n<10){ // 조건을 만족하지 않으면 한번도 실행되지 않는다.
-
n++;
-
}
-
-
n=10;
-
do { // 적어도 한번은 실행한다.
-
n++;
-
}while(n<10);
-
}
-
}
- 결과
- 예제 : 한 수를 입력하여 1부터 그 수까지의 합을 구하라는연예인
-
import java.io.IOException;
-
import java.io.BufferedReader;
-
import java.io.InputStreamReader;
-
-
public class Test4
-
-
int num, s, n;
-
// 수 입력 받기
-
do
-
}
-
while (num<1 || num>100); // 범위를 벗어났을 때 → do{@_@}의 @_@ 실행
-
// 반복횟수가 명확하지 않을땐 while을, 명확할땐 for문을 주로 쓴다.
-
-
// 합 구하기
-
s=0; n=0;
-
while(n<num){
-
n++;
-
s+=n;
-
}
-
}
-
}
- 결과
* for 문
- 반복횟수가 정해진 반복문일 경우 유용하게 사용된다.(수학적 계산에 유리)
- 형식
for (n=1; n<=100; n++){
s+=n;
}
for (초기값; 조건값; 증감값)
- 예제 : 초기값과 증감값에는 콤마(,)로 구분하여 두개의 값이 입력이 가능하나 일반적이지 않다.
-
int n,s;
-
// 아래의 형식이 아닌경우 for다음에 ;이 붙으면 결과가 나오지
-
// 않으므로 주의해야 함
-
for (n=1,s=0; n<10; s+=n,n++); // 조건식에만 ,이 들어가지 못한다
- 예제 : for문 안에서 선언된 변수는 외부에서 사용불가하다.
-
int s=0;
-
for(int n=1; n<=100; n++){ // for문 안에서도 초기값으로 변수값 형선언 가능
-
s+=n;
-
}
-
// System.out.println("n:"+n+",합 : "+s); // 오류
-
// for에서 선언된 변수는 외부에서 사용불가!!
-
// for 안에서만 사용 가능
- 예제 : for문 안에서 선언된 변수의 초기값이 반복문의 조건에 항상 참일 때 무한루프에 빠진다.
-
int i,j;
-
for(i=1; i<=5; i++){
-
// i=3; // 무한루프∞에 빠짐
-
for(j=1; j<=4; j++){
-
}
-
}
- 예제 : * 로 삼각형 모양 만들기.
-
int i,j;
-
for(i=1; i<=5; i++){
-
for(j=1; j<=5-i; j++){
-
}
-
for(j=1; j<=i*2-1; j++){ // j<=i 일때 오른쪽이 직선, *이 삼각형 모양으로 되기 위해
-
// 1, 3, 5, 7, 9.. 식으로 가려면 i값은 1,2,3,4,5.. 식이므로 1,3,5,7,9..가 되기 위한
-
// 조건식을 찾으라는 말, 1*2-1=1, 2*2-1=3....
-
}
-
}
- 결과
- 예제 : 역삼각형 만들기
-
int i,j;
-
for(i=5; i>=1; i--){
-
for(j=1; j<=5-i; j++){
-
}
-
for(j=1; j<=i*2-1; j++){ //
-
}
-
}
- 예제 : while문 for문 if문 활용
-
import java.io.*;
-
-
public class Test7{
-
-
int num, s;
-
char ch;
-
-
while(true){ // 무한루프
-
do{
-
}while(num<1 || num>1000);
-
-
// 1에서 입력받은 수까지의 합을 구한다.
-
s=0;
-
for(int i=1; i<=num; i++)
-
s+=i;
-
-
// 합을 계속 구할지 물어본다.
-
-
if(ch!='y' && ch!='Y')
-
break; // while(true) 문을 빠져나간다.
-
}
-
}
-
}
- 결과
* break : 속해있는 brace(중괄호)의 while, do~while, for, switch 문을 빠져나감
* continue : 속해있는 brace의 while, do~while, for 문을 빠져나감
* 네이블
-
int a=0,b=0;
-
-
jump: // 네이블이름은 엿장수 마음대로
-
while(true){
-
a++;
-
b=0;
-
while(b<3){
-
if(a>3)
-
break jump; // 네이블 밑에 있는 문장을 빠져나가라
-
b++;
-
}
-
} // while(ture)_end
* 문제1) : 1*2*3*....*10의 결과 구하기
-
public class Test9{
-
-
int i=0,n=1,a=0;
-
-
for (i=1; i<=10; i++)
-
{
-
n*=i;
-
}
-
}
-
}
(소스 보고 공부하기..)
* 문제2) : 어떤 수를 입력받아 그 수가 소수인지 판별하기
소수 : 자기자신으로만 나누어지는 수(단, 1은 소수가 아님)
(소스 보고 공부하기..)
* 문제3) : 두 수를 입력 받은 후 작은수에서 큰수까지의 합 구하기
(소스 보고 공부하기..)
* 문제4) : 정수를 입력받아 입력받은 정수의 자릿수 구하기
(소스 보고..)
* 문제 5) 1~100까지 수중 3,6,9가 들어있는 수는 *를 출력하고
그렇지 않으면 수를 출력한다. 단 한줄에 10개씩 출력
(소스 보고..)
* 문제 6) 구구단을 다음과 같이 출력한다.
2*1=2 3*1=3 4*1=4 5*1=5
2*2=4 3*2=6 4*2=8 5*2=10
:
2*9=18 3*9=27 4*9=36 5*9=45
6*1=6 7*1=7 8*1=8 9*1=9
:
(소스 보고..)
* 과제) 자판기 만들기
(공부)