반복문.. 헷갈린다요...😵
Test034~Test044
//if 구조
if() //-> true / false
{
}
// switch 기본구조
switch(n) //-> 상수
{
//case는 여기서 부터 끝까지 읽는 것
case1 : ...; //n이 1일 때 case1, case2, case3실행
case2 : ...; //n이 2일 때 case2, case3실행
case3 : ...; //n이 3일 때 case3실행
default : ...; //n이 1,2,3이 아닐때 시작하는 지점
//케이스, 디폴트의 위치 어디있든 상관없음
default : ...;
case3 : ...;
case1 : ...;
case2 : ...;
}
// switch 일반적인 구조
switch
{
default : ...;
break;
case3 : ...; //break안써도됨!
case1 : ...;
break;
case2 : ...;
break;
}
// >>>break만나면 여기로 빠져나온다!
//-----------case1
while(true)
{
...
}
//-----------case2
do
{
...
}while(true);
//-----------case3
for( ; ; )
{
...
}
//이렇게도 쓸수있음!! 케이스1하고 브레이크 케이스2하고 브레이크...
switch(n)
{
case1 : case2 : case3 :
System.out.println("SIMPLE JAVA");
break;
case1 : case2 :
System.out.println("FUNNY JAVA");
break;
}
//Test036
switch (avg/10)
{
case 10: case 9: grade = 'A';break;
case 8: grade = 'B';break;
case 7: grade = 'C';break;
case 6: grade = 'D';break;
default :grade = 'F';
//char grade = 'F';로 했다면 default안써도됨!!
}
/*실행 예)
임의의 정수 입력(1~3) : 3
★★★
계속하려면...
임의의 정수 입력(1~3) : 7
입력 오류~!!
계속하려면...
*/
//Test037
System.out.print("\n<일반모델>\n");
switch (n)
{
case 1 : System.out.println("★"); break;
case 2 : System.out.println("★★"); break;
case 3 : System.out.println("★★★"); break;
default : System.out.println("입력 오류~!!!"); break;
}
//기본모델 print()사용 //---check~!! print()사용
System.out.print("\n<기본모델>\n");
switch (n)
{
case 3 : System.out.print("★");
case 2 : System.out.print("★");
case 1 : System.out.print("★\n");
break;
default : System.out.println("입력 오류~!!!");
}
/* 실행 결과
임의의 정수 입력(1~3) : 2
<일반모델>
★★
<기본모델>
★★
계속하려면 아무 키나 누르십시오 . . .
임의의 정수 입력(1~3) : 5
<일반모델>
입력 오류~!!!
<기본모델>
입력 오류~!!!
계속하려면 아무 키나 누르십시오 . . .
*/
/*
실행 예)
첫 번째 정수 입력 : 20
두 번째 정수 입력 : 14
연산자 입력[+ - * /] : +
>> 20 + 14 = 34
계속하려면 아무 키나 누르세요...
*/
//Test038
op = (char)System.in.read();
switch (op)
{
case '+': result = a + b; break;
case '-': result = a - b; break;
case '*': result = a * b; break;
case '/': result = a / b; break;
default: System.out.println("[+ - * /]만 입력해주세요!!!"); break;
}
System.out.printf("\n>> %d %c %d = %d\n",a,op,b,result);
/*
첫 번째 정수 입력 : 5
두 번째 정수 입력 : 2
연산자 입력[+ - * /] : 5
[+ - * /]만 입력해주세요!!!
>> 5 5 2 = 0
계속하려면 아무 키나 누르십시오 . . .
*/
int a, b, result;
int op;
//(..생략..)
switch (op)
{
case 43: result = a + b; break;
case 45: result = a - b; break;
case 42: result = a * b; break;
case 47: result = a / b; break;
default: return; //check~!!
}
// ※ return 키워드가 지니는 두 가지 의미
// 1. 값의 반환
// 2. 메소드의 종료 -> main()메소드 종료 -> 프로그램 끝
// (return을 발견하면 **어느 메소드**에 들어있는지 꼭 확인!! 지금은 main)
System.out.printf("\n>> %d %c %d = %d\n",a,op,b,result);
System.out.printf("\n>> %d %d %d = %d\n",a,op,b,result); //이렇게 하면 연산자 값 아스키코드 값이 출력됨!!
/*
첫 번째 정수 입력 : 2
두 번째 정수 입력 : 5
연산자 입력[+ - * /] : +
>> 2 + 5 = 7
>> 2 43 5 = 7
계속하려면 아무 키나 누르십시오 . . .
첫 번째 정수 입력 : 2
두 번째 정수 입력 : 2
연산자 입력[+ - * /] : 2
계속하려면 아무 키나 누르십시오 . . .
*/
switch (op)
{
//JDK 1.5부터 가능한 문법
case '+': result = a + b; break;
case '-': result = a - b; break;
case '*': result = a * b; break;
case '/': result = a / b; break;
default: return;
}
System.out.printf("\n>> %d %c %d = %d\n",a,op,b,result); //% check~!!
System.out.printf("\n>> %d %d %d = %d\n",a,op,b,result); //이렇게 하면 연산자 값 아스키코드 값이 출력됨!!
switch (op)
{
//JDK 1.7부터 가능한 문법
case "+": result = a + b; break;
case "-": result = a - b; break;
case "*": result = a * b; break;
case "/": result = a / b; break;
default: return;
}
System.out.printf("\n>> %d %s %d = %d\n",a,op,b,result); //-------check~!!! %s
: 주어진 조건이 참인 경우 일정 영역의 문장들을 반복 수행하다가
조건식이 거짓이 되는 순간이 오면, 반복 수행을 중단하는 문장이다.
<while의 구조>
while(조건식) -> true / false
{
// ①반복 실행 영역(참일 때 실행)
}
②(거짓일 때 실행)
//실행 후 조건이 참이면 ①실행하고 또 확인하고 조건참이 또 ①실행 또 실행했는데 거짓이면 ②으로 내려옴
//Test039
/* 1-------------------------------------
int n = 0;
while (n<10)
{
System.out.println("n = " + n);
n++;
}
//실행결과
n = 0
n = 1
n = 2
n = 3
n = 4
n = 5
n = 6
n = 7
n = 8
n = 9
계속하려면 아무 키나 누르십시오 . . .
------------------------------------------*/
/*---------------------------------------
//2 n++;위치 변경
int n = 0;
while (n<10)
{
n++;
System.out.println("n = " + n);
}
//실행 결과
n = 1
n = 2
n = 3
n = 4
n = 5
n = 6
n = 7
n = 8
n = 9
n = 10
계속하려면 아무 키나 누르십시오 . . .
------------------------------------------*/
/*---------------------------------------
//3 n++<10로 조건식 변경
int n = 0;
while (n++<=10)
{
System.out.println("n = " + n);
}
//실행 결과
n = 1
n = 2
n = 3
n = 4
n = 5
n = 6
n = 7
n = 8
n = 9
n = 10
n = 11
계속하려면 아무 키나 누르십시오 . . .
------------------------------------------*/
//Test039
int n = 0;
while (n++<=10)
{
System.out.println("n = " + ++n);
}
/*
//실행 결과
n = 2
n = 4
n = 6
n = 8
n = 10
n = 12
계속하려면 아무 키나 누르십시오 . . .
*/
//Test039
// 1부터 차례로 담아 1씩 증가하는 변수 선언 및 초기화
int n=1;
//누적합을 계산하여 담아낼 변수 선언 및 초기화
int sum=0; //누적합은 0으로 초기화 / 누적곱은 1로 초기화 ------------ check~!!!
//연산 및 처리(반복문 구성)
while (n<=100)
{
//sum을 n만큼 증가시켜라~!!!(누적합)
sum += n;
//n이 1씩 증가해 나가는 연산 필요~!!!(증가 변수)
n++;
}
System.out.println("1 부터 100 까지의 합 : " + sum);
int n=1;
while (n<=100)
{
int sum=0;
//sum을 n만큼 증가시켜라~!!!(누적합)
sum += n;
//n이 1씩 증가해 나가는 연산 필요~!!!(증가 변수)
n++;
}
System.out.println("1 부터 100 까지의 합 : " + sum);
//에러남!!!
/*----------------------------------------------------------------------
//Test040
//방법1 n=0 일 때
int n = 0;
int sum = 0;
while (n<100)
{
n += 2;
sum += n;
}
System.out.println("1 부터 100 까지 수 중 짝수의 합 : " + sum);
-------------------------------------------------------------------*/
/* 실행 결과
1 부터 100 까지 수 중 짝수의 합 : 2550
계속하려면 아무 키나 누르십시오 . . .
*/
//방법2 n=2 일 때
int n = 2;
int sum = 0;
while (n<=100)
{
sum += n;
n += 2;
}
System.out.println("1 부터 100 까지 수 중 짝수의 합 : " + sum);
/*
1 부터 100 까지 수 중 짝수의 합 : 2550
계속하려면 아무 키나 누르십시오 . . .
*/
/*
실행 예)
1 부터 100 까지의 정수 중
짝수의 합 : 2550
홀수의 합 : 2500
계속하려면 아무 키나...
*/
//Test042
int n = 1,sum ,even , odd ;
sum=even=odd=0;
while (n<=100)
{
//정수합 처리
sum += n; //----check~!!!
//짝수합 / 홀수합 처리
if (n%2==0)
{
even += n;
}else if (n%2!=0)
{
odd += n;
}else
{
System.out.println("판별 불가 데이터");
return;
}
n++;
}
System.out.println("1 부터 100 까지 정수의 합 : " + sum);
System.out.println("1 부터 100 까지 짝수의 합 : " + even);
System.out.println("1 부터 100 까지 홀수의 합 : " + odd);
/*
1 부터 100 까지 정수의 합 : 5050
1 부터 100 까지 짝수의 합 : 2550
1 부터 100 까지 홀수의 합 : 2500
계속하려면 아무 키나 누르십시오 . . .
*/
while(n<=100)
{
even +=(n%2==0? n:0);
}
헷갈려...
public class Test043
{
public static void main(String[] args)
{
//n이 0일 때
int n=0, sum=0;
while (n<=100)
{
n++;
sum += n;
if(n%10==0)
{
System.out.printf("1 ~%d 까지의 합 : %d\n", n,sum);
}
}
//n이 0으로 초기화되었을때는 while (n<=100) 와 while (n<100) 의 결과값이 같게나오는데..왤까?
//그거는 출력같을 10의 배수로만 해서 그럼!! 저거 없으면 값 다르게 나옴!!
////n<100 이면 100까지 합 출력되고, n<=100 하면 101까지의 합 출력됨
/*
1 ~10 까지의 합 : 55
1 ~20 까지의 합 : 210
1 ~30 까지의 합 : 465
1 ~40 까지의 합 : 820
1 ~50 까지의 합 : 1275
1 ~60 까지의 합 : 1830
1 ~70 까지의 합 : 2485
1 ~80 까지의 합 : 3240
1 ~90 까지의 합 : 4095
1 ~100 까지의 합 : 5050
계속하려면 아무 키나 누르십시오 . . .
*/
//Test044
// 1/2 + 2/3 + 3/5 + .... +9/10
public static void main(String[] args)
{
double n = 1, sum = 0;
while(n<10)
{
sum += n/(n+1.0);
n++
}
System.out.println(""연산 결과 : " + sum);
/*----------------------------------------
//(n-1)/n 으로 하면 n 은 2부터 시작하면 됨
//이런 규칙 찾는거 중요~!!!
//n = 2 일때
double n=2,sum=0;
while (n<=10)
{
sum += (n-1.0)/n;
n++;
}
System.out.println("연산 결과 : " + sum);
반복문은 계속 쳐보고 반복해서 연습만이 살길!!💪⚡