- if문, if-else문
- 삼항연산자
- switch-break문
- while문, do-while문
- for문
- break; 와 continue;
- 헷갈렸던 문제
- 오늘의 문제
if문
else문 안에 if-else문
if(조건문){
System.out.println(" ");
}else{
if(조건문){
System.out.println(" ");
}else{
System.out.println(" ");
}
}
if-else if-else문
if(true,false문){
System.out.println(조건문이 true일때 실행);
}else if(조건문){
System.out.println(조건문이 true일때 실행);
}else{
System.out.println(조건문이 true일때 실행);
} //셋 중 하나는 반드시 실행
문제 - 최댓값 구하기
public class Hello {
public static void main(String[] args) {
//80 , 33, 55 최댓값을 출력
int a = 80;
int b = 33;
int c = 55;
int max;
//if-else문
if (a>b) {
if(b>c) {
max=b;
}else {
max=c;
}
}else {
if(b>c) {
max = b;
}else {
max=c;
}
}
System.out.println(a);
//if-else문 다른방법
max = a;
if(b>max)
max=b;
if(c>max)
max=c;
System.out.println(max);
}
}
문제 -랜덤으로 숫자뽑고 if문으로 출력하기(응용 - 주사위 문제)
public class Hello {
public static void main(String[] args) {
int num =(int)(Math.random()*6)+1; //1~6까지 임의의 수
if(num == 1){
System.out.println("1번입니다.");
}
}
+문제 - 두 개의 주사위를 던졌을 때 나오는 눈의 합이 5가 아니면 계속 주사위를 던지고, 눈의 합이 5이면 실행을 멈추는 코드를 작성하시오.
public class Hello {
public static void main(String[] args) {
while(true){
int num1 =(int)(Math.random()*6)+1;
int num2 = (int)(Math.random()*6)+1;
System.out.println(num1+","+num2);
if(num1+num2==5)
break;
}
}
}
삼항연산자
변수 = (조건? 수1(true일때 반환) : 수2(false일때 반환))
문제 - 최댓값 구하기
public class Hello {
public static void main(String[] args) {
//80 , 33, 55 최댓값을 출력
//삼항연산자 방법
max = a>b?((a>c? a : (c>b?c:b))):b;
System.out.println(max);
}
}
switch문
타입형 = 문자열,숫자 다 가능;
switch(숫자or"문자열"){
case 숫자 or "문자열 :
System.out.println( );
break; //break안걸면 이후 값까지 다 출력됨
default : // =else
System.out.println( );
if문과 다른점 : 비교문x, 정수밖에 못쓴다.
예제
public class Hello {
public static void main(String[] args) {
int n = 3;
switch(n) {
case 1:
System.out.println("Simple Java");
//break;
case 2:
System.out.println("Funny Java");
//break;
case 3:
System.out.println("Fantastinc Java");
//break;
default:
System.out.println("THe best programmig language");
}
System.out.println("Do you like Java?");
}
}//결과값
//Fantastinc Java
//THe best programmig language
//Do you like Java?
while문
while(반복조건 num<5){
System.out.println( );
num++;
} //false값 바로 전까지 출력
do-while문 (거의 사용X) - 면접용
do{
System.out.println(num); // 반복영역
num++;
}while(num<5); //반복조건
while문은 조건을 먼저 체크 - 조건이 true일때만 실행
do-while문은 실행먼저 조건체크 - 따라서 조건이 맞지않아도 처음 실행은 한번 꼭한다.
for문
for(int i=0; i<5; i++){ //변수초기화; 반복조건; 반복실행
System.out.println(i);
}
문제 구구단 3단 출력
public class Practice {
public static void main(String[] args) {
int dan = 3;
for(int i = 2; i<=9; i++) {
System.out.println(dan+" X "+i+" = "+i*dan);
}
}
}
문제 1부터 100까지 합 구하시오.
public class Practice {
public static void main(String[] args) {
int sum =0;
for(int i = 1;i<=100; i++)
sum+=i;
System.out.println(sum);
}
}
문제 1부터 100 중 짝수의 합 구하시오.
public class Practice {
public static void main(String[] args) {
int sum =0;
for(int i = 1;i<=100; i++)
if(i%2==0)
sum+=i;
System.out.println(sum);
//또는
int sum =0;
for(int i = 0;i<=100; i+=2) //0부터 시작, 2씩 늘어나게 반복
sum+=i;
System.out.println(sum);
}
}
문제 500원을 입금했는데 하루에 1원씩 이자가 붙는다면 5일후에는 잔액이 얼마가 되어있을까?
public class Practice {
public static void main(String[] args) {
int balance =500;
for(int day = 1;day<=5; day++) {
balance = balance +1;}
System.out.println(balance);
}
}
break; 와 continue;
break는 출력 탈출, continue는 해당조건만 출력하지말고 계속
예제1
public class Practice {
public static void main(String[] args) {
int num = 1;
boolean search = false;
while(num<100) {
if(((num%5)==0)&&((num%7)==0)) {
search = true;
break;
}
num++;
}
if(search)
System.out.println("찾는 정수 : "+num);
else
System.out.println("5의 배수이자 7의 배수인 수를 찾지 못했습니다.");
}
}
문제 = 5의배수이면서 7의배수의 값과 몇번나왔는지 세기
public class Practice {
public static void main(String[] args) {
int num = 0;
int count = 0;
while((num++)<100) { //여기 넘어가면서 num은 1로 변함
if(((num%5)!=0)|| ((num%7)!=0))
continue; //5의배수가아니거나 7의배수가 아닐때 계속반복
count++;
System.out.println(num);
}
System.out.println("count: "+count);
}
}//35
//70
//count: 2
★★헷갈렸던 문제★★
//while문 안에서 후위연산자를 넣어줄때 생기는 오류
public class Hello {
public static void main(String[] args) {
int num =0;
int sum =0;
while((num++) <= 5){ //num이 여기서 5까지 나오고
//다음에 빠져나올때 6이 더 추가되어서 6까지 더해진다.
System.out.println(num);//여기서 몇까지 출력되는지 알 수 있다.
sum+=num;
}
System.out.println(sum);
}
}//1~6까지 더해짐
오늘의 문제
1.조건문의 3가지 종류를 나열하고 설명하시오.
do-while, while, for
do{반복영역}while(반복조건);
while(변수조건){변수반복실행, 출력}
for(변수의 초기화; 변수조건; 변수반복실행){출력}
2.아래의 프로그램을 짜시오.
- 국어:80 수학:80 영어:60점과 평균을 출력하고, 평균에 따른 수우미양가를 출력하시오
public class Practice {
public static void main(String[] args) {
int kor = 80;
int math = 80;
int eng = 60;
int sum = kor+math+eng;
float avg = sum/3.0f; //형변환해줘야한다.
System.out.println("과목 총점은" + sum);
System.out.println("과목 평균은" + avg);
if(avg<=90) {
System.out.println("수");
}else if(avg<=80){
System.out.println("우");
}else if(avg<=70) {
System.out.println("미");
}else if(avg<=60) {
System.out.println("양");
}else {
System.out.println("가");
}
}
}
- int num = 33 할당후 해당 숫자 짝수면 짝수 입니다 출력. 홀수면 홀수 출력
public class Practice {
public static void main(String[] args) {
int num = 33;
if(num%2==0) {
System.out.println(num+"은 짝수입니다.");
}else{
System.out.println(num+"은 홀수입니다.");
}
}
}
- int num = 66 할당후, 2의 배수 이고 3의 배수이면, 해당 수를 출력하고, 아니면 2의 배수 이고 3의 배수 가 아닙니다 출력.
public class Practice {
public static void main(String[] args) {
int num = 66;
if(num%2==0 && num%3==0) {
System.out.println(num);
}else{
System.out.println(num+"은 2의 배수와 3의 배수가 아닙니다");
}
}
}
- 80, 33 ,55 = 최대값을 출력하시오.
public class Practice {
public static void main(String[] args) {
int a = 80;
int b = 33;
int c = 55;
if(a>b && a>c) {
System.out.println(a);
}else if(b>a && b>c) {
System.out.println(b);
}else{
System.out.println(c);}
}
}
3.아래를 삼항연산자를 사용하여 프로그래밍 하시오.
-80, 33 ,55 = 최대값을 출력하시오.
public class Practice {
public static void main(String[] args) {
int a = 88;
int b = 33;
int c = 55;
int max= ((a>b&&a>c)?a:(b>c&&b>a)?b:c);
System.out.println(max);
}
}
4.switch 문에서 '걸어서 하늘까지' 를 설명하시오.
변수가 조건과 동일한 출력문부터 이후 출력문까지 전부 다 출력된다.
5.아래를 프로그래밍 하시오.
- int num = -10 을 할당후 해당 정수에 대한 절대값을 출력하는 프로그램을 작성하시오.
public class Practice {
public static void main(String[] args) {
int num = -10;
if(num<0) {
System.out.println(-num);
}else {
System.out.println(num);
}
}
} //10
6.반복문에서 while 문과 do while 문의 차이는?
while문은 조건을 먼저 체크 - 조건이 true일때만 실행
do-while문은 실행먼저 조건체크 - 따라서 조건이 맞지않아도 처음 실행은 한번 꼭한다.
7.for 문에서 for 문이 실행되는 순서를 설명하시오.
변수 초기화해준 값부터 시작해서 반복 조건이 false가 될때까지 반복 실행을 해준다.
8. 9단을 출력하는 프로그램을 만드시오.(while 문 사용할것)
public class Practice {
public static void main(String[] args) {
int dan = 9;
int i=2;
while(i<=9) {
System.out.println(dan+"X"+i+"="+i*dan);
i++;
}
}
}
9.1부터 100까지의 합을 구하시오.
public class Practice {
public static void main(String[] args) {
int sum = 0;
for(int i=1; i<=100; i++) {
sum +=i;
}
System.out.println(sum);
}
} //5050
10.1부터 100까지의 홀수들의 합을 구하시오.
public class Practice {
public static void main(String[] args) {
int sum = 0;
for(int i=0; i<=100; i=i+2) {
sum +=i;
}
System.out.println(sum);
}
} //2550
11.반복문에서의 break 와 continue 를 설명하시오.
break는 true면 더이상 반복하지말고 끝
continue는 해당조건만 건너뛰고 계속 다음 반복실행
12. 아래를 프로그래밍 하시오.
- 1과 1000 사이의 숫자중 3의 배수 이자 5의 배수인 첫번재 수는?
public class Practice {
public static void main(String[] args) {
for(int i = 1; i<=1000; i++) {
if(i%3==0 && i%5==0) {
System.out.println(i);
break;
}
}
}
} //15
- 1과 1000 사이의 숫자중 2의 배수 이자 3의 배수인 수는 모두 몇개인가?
public class Practice {
public static void main(String[] args) {
int count=0;
for(int i = 1; i<=1000; i++) {
if(i%3==0 && i%5==0) {
count++;
}
}
System.out.println(count);
}
} //66
13.화폐매수 구하기?
=126500 의 금액을 한국화폐으로 바꾸었을 때 각각 몇 개의 화폐가 필요한지 계산해서 출력하라.
예) int 126500;
오만원 : 2장
만원: 2장
오천원짜리 :1장
천원짜리: 1
오백원짜리 1개
백원짜리 0개
public class Practice {
public static void main(String[] args) {
int balance = 0;
int num = 126500;
int m50000 = 50000;
int m10000 = 10000;
int m5000 = 5000;
int m1000 = 1000;
int m500 = 500;
int m100 = 100;
balance = num/m50000;
System.out.println("오만원:"+balance);
num -= balance*m50000;
balance = num/m10000;
System.out.println("만원:"+balance);
num -= balance*m10000;
balance = num/m5000;
System.out.println("오천원:"+balance);
num -= balance*m5000;
balance = num/m1000;
System.out.println("천원:"+balance);
num -= balance*m1000;
balance = num/m500;
System.out.println("오백원:"+balance);
num -= balance*m500;
balance = num/m100;
System.out.println("백원:"+balance);
}
}
'코딩 > 수업 정리' 카테고리의 다른 글
20.11.30 Mon [006] (0) | 2020.11.30 |
---|---|
자바 자습 (0) | 2020.11.28 |
20.11.26 Thu [004] (0) | 2020.11.26 |
20.11.25 Wed [003] (0) | 2020.11.25 |
20.11.24 Tue [002] (0) | 2020.11.24 |
댓글