on
20211221 - JAVA 2회차 복습
20211221 - JAVA 2회차 복습
while 반복문
~하는 동안에
for은 초기값;조건;증감이 있지만, while은 조건만 있다.
1 2 3 4 5 6 7 8 9 10 11 12 class Test1 //Test1 클래스 { public static void main( String [] args) { int i = 0 ; while (i < 3 ) //조건이 참이면 출력 { System . out . println (i + "hi" ); i = i + 1 ; //이런 조건이 없으면 i = 0이므로 무한반복 } } } Colored by Color Scripter cs
while 반복문 실습 문제
1. 1부터 100까지의 합
1 2 3 4 5 6 7 8 9 10 11 12 13 class Add { public static void main( String [] args) { int i = 1 , sum = 0 ; while (i < = 100 ) { sum = sum + i; System . out . println (sum); i = i + 1 ; } } } Colored by Color Scripter cs
2. 1부터 100까지의 짝수의 합3. 1부터 100까지의 4의 배수의 갯수
1 2 3 4 5 6 7 8 9 10 11 12 13 class Add2 { public static void main( String [] args) { int i = 2 , sum = 0 ; while (i < = 100 ) { sum = sum + i; System . out . println (sum); i = i + 2 ; } } } Colored by Color Scripter cs
4. 7의 배수의 합이 최초로 1000을 넘는 수와 그 수가 몇번째 항인지
1 2 3 4 5 6 7 8 9 10 11 12 13 14 class WAdd7 { public static void main( String [] args) { int i = 7 , sum = 0 , cnt = 1 ; while (sum < = 1000 ) { sum = sum + i; System . out . println ( "cnt=" + cnt + "sum=" + sum + "i=" + i); i = i + 7 ; cnt = cnt + 1 ; } } } Colored by Color Scripter cs
5. 5!
1 2 3 4 5 6 7 8 9 10 11 12 13 class Five { public static void main( String [] args) { int i = 1 , sum = 1 ; while (i < = 5 ) { sum = sum * i; System . out . println ( "cnt=" + i + "sum=" + sum); i = i + 1 ; } } } Colored by Color Scripter cs
증감과 출력 순서 주의하기!
위->아래 순차적으로 실행된다.
자료형 boolean -> true, false 두가지 값을 가지고 있다.
== 동일한가, != 서로 다른가
1 2 3 4 5 6 7 8 9 10 11 12 13 class Boo { public static void main( String [] args) { boolean result; result = 5 > 3 ; System . out . println (result); //true 출력 System . out . println ( true ); //true 출력 System . out . println ( 5 < 3 ); //false 출력 System . out . println ( 5 = = 3 ); //false 출력 System . out . println ( 5 ! = 3 ); //true 출력 } } Colored by Color Scripter cs
final int MAX = 5; // final을 붙이면 변수를 상수로 만들어준다, symbolic constant라고 한다.
MAX = 10; // 컴파일에러 발생
프로그래밍 시 암묵적인 룰: 변수 이름이 전체 대문자면 상수를 의미
복합대입연산자
i +=2; //i = i + 2;
i -= 2; //i = i - 2;
i *= 2; //i = i * 2;
i /= 2; //i = i / 2;
i %= 2; //i = i % 2; 나머지 연산자(정수에만 있는 개념)
증감연산자
i++; //i+1
i--; //i-1
단독 사용 시 위치는 앞뒤 상관없다(변수 본인의 값은 위치 상관없이 바뀐다)
대입연산자와 함께 사용 할 경우 상관있다.
result1 = ++num1; //증가한 값이 대입된다.
result2 = num2++; //증가하기 전의 값이 대입된다.
1 2 3 4 5 6 7 8 9 class Sens { public static void main( String [] args) { int num1 = 10 ; System . out . println (num1 + + ); //10 System . out . println (num1); //11 } } Colored by Color Scripter cs
System.out.println(num1++);
변수 값 변경을 따로 선언(num1 = num1++;)하지 않아도 출력한 값이 변수에 저장된다.
예를 들어 System.out.println(num1=num1+2); 으로 출력만 해도 num1 값이 변경되어 있다.
for/while 반복문과 중괄호
중괄호를 지워도 컴파일은 되지만 단 한문장만 for/while에 소속된 문장으로 인식된다.
1 2 3 4 5 6 7 8 9 10 class For1 { public static void main( String [] args) { int i = 0 ; for (i = 0 ;i < 3 ;i + + ) System . out . println ( "hi" ); //세번 출력 System . out . println ( "good" ); //한번 출력 } } Colored by Color Scripter cs
1 2 3 4 5 6 7 8 9 10 class While1 { public static void main( String [] args) { int i = 0 ; while (i < 3 ) System . out . println ( "hi" ); //무한대 출력 i + + ; } } Colored by Color Scripter cs
for/while 반복문과 세미콜론
for/while문의 조건은 true여부를 판단하는 것
int i = 0;
for(;i<3;i++) //for문 내에서 선언문을 지워도 컴파일 가능
for(;j<3;) //증감문 지워도 컴파일 가능, 무한 반복하게 됨, while문과 동일해진다.
for(;;) //컴파일 가능, turu로 인식된다, 무한 반복하게 됨
for() //컴파일 불가능
while(turu) //무한루프
while(false) //한번도 진행되지 않는다
while() //컴파일 불가능
while(1) //무한루프 > C언어에서만 쓰나..?
do while 반복문
for 반복문과 while 반복문은 선체크 반복문, 조건을 만족해야 수행한다.
do while문은 후체크 반복문
1 2 3 4 5 6 7 8 9 10 class DoWhile { public static void main( String [] args) { int i = 10 ; do { System . out . println ( "Hi" ); } while (i < 3 ); } } Colored by Color Scripter cs
조건을 만족하든/안하든 무조건 한번은 실행된다.
}while(i<3); 세미콜론 붙여줘야 하는 점 주의!
1 2 3 4 5 6 7 8 9 10 11 class DoWhile { public static void main( String [] args) { int i = 0 ; do { System . out . println ( "Hi" ); i + + ; } while (i < 3 ); } } Colored by Color Scripter cs
do while 반복문 실습 문제
1. 1부터 100까지의 합
1 2 3 4 5 6 7 8 9 10 11 12 class DoWhile1 { public static void main( String [] args) { int i = 1 , sum = 0 ; do { sum += i; System . out . println ( "sum=" + sum + "i=" + i); i + + ; } while (i < = 100 ); } } Colored by Color Scripter cs
2. 1부터 100까지의 짝수의 합
1 2 3 4 5 6 7 8 9 10 11 12 class DoWhile2 { public static void main( String [] args) { int i = 2 , sum = 0 ; do { sum += i; System . out . println ( "sum=" + sum + "i=" + i); i = i + 2 ; } while (i < = 100 ); } } Colored by Color Scripter cs
3. 1부터 100까지의 4의 배수의 갯수
1 2 3 4 5 6 7 8 9 10 11 12 class DoWhile3 { public static void main( String [] args) { int i = 4 , cnt = 0 ; do { cnt += 1 ; System . out . println ( "cnt=" + cnt + "i=" + i); i += 4 ; } while (i < = 100 ); } } Colored by Color Scripter cs
4. 7의 배수의 합이 최초로 1000을 넘는 수와 그 수가 몇번째 항인지
1 2 3 4 5 6 7 8 9 10 11 12 13 class DoWhile4 { public static void main( String [] args) { int i = 7 , cnt = 0 , sum = 0 ; do { cnt += 1 ; sum += i; System . out . println ( "cnt=" + cnt + "sum=" + sum + "i=" + i); i += 7 ; } while (sum < = 1000 ); } } Colored by Color Scripter cs
5. 5!
1 2 3 4 5 6 7 8 9 10 11 12 class DoWhile5 { public static void main( String [] args) { int i = 1 , fac = 1 ; do { fac * = i; System . out . println ( "fac=" + fac + "i=" + i); i + + ; } while (i < = 5 ); } } Colored by Color Scripter cs
from http://960603.tistory.com/331 by ccl(A) rewrite - 2021-12-22 00:01:30