국비교육 4일차
1. 삼항 연산자
조건 연산자의 한 종류로 if~else 조건문과 같은 연산을 수행한다.
if(){
} else {
}
1-1. 문법
-조건식? 반환값1 : 반환값2;
- 물음표 앞의 조건식에 따라 결과값이 참(true)이면 반환값1을 반환하고, 결과값이
거짓(false)이면 반환값2를 반환한다.
package condition;
public class Main01 {
public static void main(String[] args) {
// 조건식
int result;
if (5<4) {
result = 50;
} else {
result = 40;
}
System.out.println(result);
// 삼항 연산자
// 변수 = 조건식 ? 반환값1 : 반환값2;
int result2 = (5<4) ? 50 : 40;
System.out.println(result2);
}
}
package condition;
public class Main02 {
public static void main(String[] args) {
int age = 21;
// 만약 age가 21살 이상이면, "Beer"를 반환하고
// 그렇지 않다면 ""Juice"를 반환해라
String beverage = (age>=21) ? "Beer" : "Juice";
System.out.println(beverage);
}
}
package condition;
public class Main05 {
public static void main(String[] args) {
//1~5번은 if문
/*
1. 만약 3000원 이상의 돈을 가지고 있으면
"택시를 타고 가라"를 출력,
그렇지 않으면 "걸어가라"를 출력
*/
int money = 3000;
if(money >=3000) {
System.out.println("택시를 타고 가라");
}
else {
System.out.println("걸어가라");
}
System.out.println("------------------");
/*
2. 만약 돈이 3000원 이상 있거나, 카드가 있다면
"택시를 타고 가라"를 출력,
구렇지 않다면 "걸어가라"를 출력
*/
int money2 = 3000;
boolean hascard = true;
if(money2 >= 3000 || hascard) {
System.out.println("택시를 타고 가라");
}
else {
System.out.println("걸어가라");
}
System.out.println("----------------");
/*
3. int a = 10;
어떤 특정 정수값 a가 짝수이면 "짝수", 홀수이면 "홀수"를 출력
*/
int a = 11;
if(a%2==0) {
System.out.println("짝수");
}
else {
System.out.println("홀수");
}
System.out.println("----------------");
/*
4. 서로다른 특정 정수값 a1 = 10, b1 = 20, c1 = 9이 있다.
이 중에서 최대값을 구하여라
*/
int a1 = 10;
int b1 = 20;
int c1 = 9;
int max = a1;
if(b1 > max) {
max = b1;
}
else if(c1 > max) {
max = c1;
}
System.out.println(max);
System.out.println("---------------------");
/*
5. 국어, 영어, 수학 점수의 평균이 95점 이상이면 "장학생"출력하여라
*/
int kor = 95; int eng = 95; int math = 95;
int average = (kor+eng+math)/3;
if(average >= 95) {
System.out.println("장학생 입니다.");
}
System.out.println("--------------------");
// 6번은 switch-case문 사용
/*
6. 숫자가 3이면 "안녕"이 세줄,
2이면 "안녕"이 두줄, 1이면 "안녕"이 한줄,
그 외에는 "잘가"가 출력되도록 하시오.
*/
int num =5;
switch(num) {
case 3:
System.out.println("안녕");
case 2:
System.out.println("안녕");
case 1:
System.out.println("안녕");
break;
default:
System.out.println("잘가");
break;
}
System.out.println("------------------");
// 7번은 삼항연산자
/*
7. 12시보다 작으면 "오전", 크면 "오후" 출력
*/
int day = 9;
String all = (day < 12)? "오전":"오후" ;
System.out.println(all);
}
}
package loop;
public class Main12 {
public static void main(String[] args) {
int sum = 0;
for(int i =1; i<101; i++) {
sum +=i;
}
System.out.println("1부터 100까지 합은 "+ sum);
}
}
package loop;
public class Main12 {
public static void main(String[] args) {
int result = 0;
for(int i = 1; i<10; i++) {
result = 7*i;
System.out.println(result);
}
}
}
package loop;
public class Main12 {
public static void main(String[] args) {
int result = 0;
for(int i = 1; i<10; i++) {
result = 7*i;
System.out.println("7*"+i+" = "+result);
}
}
}
2-2. while문
- while문 역시 for문과 마찬가지로 반복적인 처리를 수행하는 문법이다.
- for문은 초기식, 조건식, 증감식을 모두 내장하는 반면, while문은 조건식만을 내장하기
때문에 초기식과 증감식을 외부에 따로 정의해 주어야 한다.
초기식;(1)
while(조건식(2),(5)){
...반복적으로 동작할 구문 ...
증감식(4)
}
package loop;
public class Main12 {
public static void main(String[] args) {
//while문으로 1부터100까지의 합
int i = 1;
int sum = 0;
while(i < 101) {
sum +=i;
i++;
}
System.out.println(sum);
}
}
2-3. do~while문
- 조건의 판별을 나중에 수행하는 반복문 형태
- 초기식을 설정한 후 do{..}안의 문장을 우선적으로 1회 실행하고 조건을 판별하므로, 조건이 참이 아니더라도 최소 1회는 실행된다.
초가삭;(1)
do {
...반복적으로 동작할 구문...(2)(5)
증감식(3)
} while (조건식(4));
package loop;
public class Main06 {
public static void main(String[] args) {
// 1 + 2 + ... + 100
int sum = 0;
int i = 1;
do {
sum += i;
i++;
} while(i<=100);
System.out.println(sum);
}
}
package loop;
public class Main07 {
public static void main(String[] args) {
/*
* do~while을 사용해서 구구단 7단의 결과값 출력
*/
int i = 1;
int result = 0;
do {
result = 7*i;
System.out.println("7*"+i+" = "+ result);
i++;
} while(i<10);
}
}
package loop;
public class Main08 {
public static void main(String[] args) {
int max = 100;
while(max > 100) {
System.out.println("while문 실행");
}
//do~while 구문은 무조건 do안에 문장을 1번실행
do {
System.out.println("d0~while문 실행");
}while(max > 100);
}
}
증감식이 설정되지 않거나, 증감식이 수행되더라도 조건식이 거짓이 되지 않은 형태
조건식이 항상 참이므로, 반복문이 종료되지 않는다.
프로그램이 PC의 자원을 매우 많이 사용하게 되므로, 시스템 다운을 발생시킬 수 있다.
for문의 무한루프 예
for(int i = 0, i<10; i--){
System.out.println("i");
}
while문의 무한 루프 예
while(true){
System.out.println("hello");
}
package loop;
public class Main09 {
public static void main(String[] args) {
for(int i =0; i<10; i--) {
System.out.println(i);
}
}
}
package loop;
public class Main10 {
public static void main(String[] args) {
while(true) {
System.out.println("hello");
}
}
}
// 유효
int num = 100;
for( int i = 0; i < 10; i++{
System.out.println(num+i);
}
}
System.out.println(result); -