자바 변수,연산자, 조건문 예제
[1. 입력 출력 예제]
입력과 출력 클래스를 생성한 후 이름(문자열)과 나이(정수)를 입력받고 아래와 같이 출력하시오.
* prinfln 과 printf를 모두 활용해보시오.
package Aug_seventeenth_reviw;
import java.util.Scanner;
public class ex10 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("이름: ");
String name = sc.next();
System.out.print("나이: ");
int age = sc.nextInt();
System.out.println("이름은 "+ name +"이고 나이는 "+ age + "입니다");
System.out.printf("이름은 %s이고 나이는 %d입니다",name, age);
}
}
**헷갈리는 개념 %s -> 문자열, %d정수값, %f 실수
산술연산자: 숫자를 연산하는 연산자
+:더하기
-: 빼기
*: 곱하기
/: 몫
%: 나머지
[2. 산술 연산자 예제]
ex1)
int num1 = 10;
int num2 =7;
System.out.println(num1/num2); -> 1
System.out.println(num1%num2); -> 3
ex2)
int num1 = 10;
int num2 = 7;
float num3 = 10f; //10.0
float num4 =7f; //7.0
System.out.println(num1/num2); -> 1 //정수 나누기 정수는 정수
System.out.println(num3/num4); -> 1.4285715 // 실수 나누기 실수는 실수
System.out.println(num1/num4); -> 1.4285715 // 정수 나누기 실수는 실수
//둘중 하나만 실수여도 결과값을 실수로 나온다
ex3)
int num1 = 10;
int num2 = 7;
System.out.println(num1+num2); -> 17
String num1 = "10";
String num2 = "7";
System.out.println(num1+num2); ->107
int num1 = 10;
String num2 = "7";
System.out.println(num1+num2); ->107
ex4)
String a = 10 + 7 + "";
String b = 8+""+2;
String c = ""+5+2;
System.out.println(a); 17
System.out.println(b); 82
System.out.println(c); 52
ex5)
num1, num2의 더하기,빼기,곱하기, 나누기 결과 값을 출력하세요.
(단, 나누기 결과 값은 아래와 같이 실수로 표현하세요.)
(num1 =7, num2 =3)
package Aug_seventeenth_reviw;
import java.util.Scanner;
public class ex10 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int num1 =7;
int num2 =3;
int sum = num1+num2;
int minus = num1-num2;
int mul = num1*num2;
double div = (double)num1/num2;
System.out.println("더하기 결과: " + sum);
System.out.println("빼기 결과: " + minus);
System.out.println("곱하기 결과: " + mul);
System.out.println("나누기 결과: " + div);
System.out.printf("나누기 결과: %.2f", div);
}
}
ex6)
백의 자리 아래를 버리는 코드를 작성하세요
ex) int num = 456 -> 400 / int num = 111->100
package Aug_seventeenth_reviw;
public class ex10 {
public static void main(String[] args) {
int num1 = 456; //400
int result = num1/100*100;
System.out.println("결과 확인 : "+ result);
}
}
예제7)
일의 자리를 1로 바꾸는 코드를 작성하세요.
ex)
int num = 456 ->451
int num = 777 ->771
package Aug_seventeenth_reviw;
public class ex10 {
public static void main(String[] args) {
int num1 = 456; //451
int result = num1/10*10+1;
System.out.println("결과 확인 : "+ result);
}
}
예제8)
두 개의 정수를 입력받아 두 수의 더하기, 빼기, 곱하기, 나누기(몫) 결과 값을 출력하세요.
package Aug_seventeenth_reviw;
import java.util.Scanner;
public class ex10 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("첫번째 정수 입력 : ");
int num1 = sc.nextInt();
System.out.print("두번째 정수 입력 : ");
int num2 = sc.nextInt();
int sum = num1+ num2;
int sub = num1- num2;
int mul = num1* num2;
int div = num1/num2;
System.out.println("두수의 더하기: "+ sum);
System.out.println("두수의 빼기: "+ sub);
System.out.println("두수의 곱하기: "+ mul);
System.out.println("두수의 나누기(몫): "+ div);
}
}
예제9)
JAVA, Web, Android 점수를 키보드로 입력 받아 합계와 평균을 출력하세요.
package Aug_seventeenth_reviw;
import java.util.Scanner;
public class ex10 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("JAVA 점수 입력: ");
int javascore = sc.nextInt();
System.out.print("Web 점수 입력: ");
int webscore = sc.nextInt();
System.out.print("Android 점수 입력: ");
int androidscore = sc.nextInt();
int sum = javascore+webscore+androidscore;
double avg = sum/3.0;
//3으로 나누고 뒤에 .0 을 붙이면 실수로 변경된다
System.out.println("합계 : "+ sum);
System.out.printf("평균 : %.2f", avg);
//%2.f를 하면 실수를 소수점 둘째자리까지 나타나게 함
}
}
예제10)
초를 입력 받아 [시,분,초] 형태로 출력하세요.
package Aug_seventeenth_reviw;
import java.util.Scanner;
public class ex10 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("초 입력: ");
int num = sc.nextInt();
//1분->60초, 5분-> 300초, 10분-> 600초, 1시간 ->3600초
int hour = num/3600;
System.out.print(hour+"시 ");
int minute = num%3600/60;
System.out.print(minute+"분 ");
int second = num%3600%60;
System.out.print(second+"초");
}
}
[3.대입연산자 예제]
예제1)
int num = 29;
num-=2 -----> num=num(29)-2;
System.out.println(num);-----> 27
예제2)
int num =29;
num -=2+3*4; -----> num = num(29)-(2+3*4);
System.out.println(num) -> 15
[2. 증감 연산자 예제]
예제1)
int i =3;
System.out.println(++i); ----> 4(1증가 후 출력)
System.out.println(i++); ----> 4(출력 후 1증가)
System.out.println(i); ----> 5
예제2)
int i =5;
System.out.println(--i); ----> 4(1감소 후 출력)
int j=5;
System.out.println(j--) ----> 5(출력 후 1감소)
예제3)
int opr = 0;
opr +=3; ----> 3
System.out.println(opr++); ----> 3(출력 후 1증가)
System.out.println(opr); ----> 4
System.out.println(++opr); ----> 5(1증가 후 출력)
System.out.println(opr); ----> 5
System.out.println(opr--); ----> 5(출력 후 1감소)
System.out.println(opr); ----> 4
System.out.println(--opr); ----> 3(1감소 후 출력)
System.out.println(opr); ----> 3
[4.비교연산자 예제]
예제1)
int a =3;
int b =10;
System.out.println(a==b); ---> false
System.out.println(a!=b); ---> true
System.out.println(a>b); ---> false
System.out.println(a<b); ---> true
[5.논리연산자 예제]
예제1)
int a =3;
int b =10;
System.out.println(!(a>b)); ----> true
예제2)
System.out.println((1<3)&&(4<5)); ---->true
System.out.println((2<1)&&(4<5)); ---->false
System.out.println((1<3)||(4<2)); ---->true
System.out.println((2<1)&&(4<2)); ---->false
[6.논리연산자 예제]
예제1)
int i =3;
int j =10;
System.out.println(i==j? "같다": "다르다") ----> 다르다
예제2)
정수를 입력받아 홀수인지 짝수인지 판별하세요.
package Aug_seventeenth_reviw;
import java.util.Scanner;
public class ex10 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("정수를 입력하세요 : ");
int num = sc.nextInt();
String result = (num%2==0)? "짝수" : "홀수";
System.out.printf("%d는(은) %s입니다", num, result);
}
}
예제3)
두개의 정수를 입력 받아 큰 수에서 작은 수를 뺀 결과값을 출력하세요.
package Aug_seventeenth_reviw;
import java.util.Scanner;
public class ex10 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("첫번째 정수 입력 : ");
int num1 = sc.nextInt();
System.out.print("두번째 정수 입력 : ");
int num2 = sc.nextInt();
int sub = num1>num2? num1-num2: num2-num1;
System.out.println("두 수의 차 : "+ sub);
}
}
예제4)
농구공을 담기 위해 필요한 상자의 개수를 구하세요. 상자 하나에는 농구공이 5개 들어갈 수 있습니다. 만일 농구공이 '23'개 라면 필요한 상자의 개수는 '5'개 입니다.
package Aug_seventeenth_reviw;
import java.util.Scanner;
public class ex10 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("농구공의 개수를 입력하세요 : ");
int num = sc.nextInt();
int box = num%5==0? num/5 : num/5+1;
System.out.println("필요한 상자의 수 : "+ box);
}
}
예제5)
시급계산기 입니다. 기본 시급은 9,000원이고 8시간이 넘을 경우 초과 시간은 시급의 1.5배를 책정해줍니다.
package Aug_seventeenth_reviw;
import java.util.Scanner;
public class ex10 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("노동시간을 입력하세요 : ");
int wh = sc.nextInt();
int pay = 0;
if(wh>=8) {
pay= 9000 +(int)(9000*1.5*(wh-8));
}else {
pay=wh*9000;
}
System.out.println("총 임금은 "+ pay+"원 입니다");
}
}
[7.단순 if문예제]
예제1)
int 타입의 변수 age를 선언하고 키보드로 값을 입력받으시오. 만약 입력받은 값이 20보다 크거나 같으면 "성인입니다"를 출력하는 프로그램을 작성하시오.
package Aug_seventeenth_reviw;
import java.util.Scanner;
public class ex10 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("나이 입력 : ");
int age = sc.nextInt();
if(age>=20) {
System.out.println("성인입니다");
}
}
}
예제2)
int 타입의 변수 num을 선언하고 키보드로 값을 입력받이시오. 만약 입력받은 값이 3의 배수이거나 5의 배수이면 "3 또는 5의 배수입니다"를 출력하는 프로그램을 작성하시오
package Aug_seventeenth_reviw;
import java.util.Scanner;
public class ex10 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("숫자 입력 : ");
int num = sc.nextInt();
if(num%3==0 || num%5==0) {
System.out.println("3 또는 5의 배수 입니다");
}
}
}
[8. if~else 문예제]
예제1)
JAVA,Python,Android 점수를 각각 입력받은 후 평균이 80점 보다 높으면 "합격",낮으면 "불합격"을 출력하시오.
package Aug_seventeenth_reviw;
import java.util.Scanner;
public class ex10 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("JAVA 점수 입력 : ");
int javascore = sc.nextInt();
System.out.print("Python 점수 입력 : ");
int pythonscore = sc.nextInt();
System.out.print("Android 점수 입력 : ");
int androidscore = sc.nextInt();
int avg = (javascore+pythonscore+androidscore/3);
if(avg>80) {
System.out.println("합격");
}else {
System.out.println("불합격");
}
}
}
예제2)
친구들과 점심을 먹은 후 총 금액의 1/n을 각자 지불 하려고 합니다. 점심 총 금액과 사람 명 수를 입력받은 후 인 당 지불해야 하는 금액이 10000원 이상이면 "10000원 이상 지불"금액이 10000원 미만이면 "10000원 미만 지불"을 출력하시오.
package Aug_seventeenth_reviw;
import java.util.Scanner;
public class ex10 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("총 금액 : ");
int pay = sc.nextInt();
System.out.print("사람 명 수 : ");
int human = sc.nextInt();
if(pay/human<10000) {
System.out.println("10000원 미만 지불");
}else{
System.out.println("10000원 이상 지불");
}
}
}
예제3)
정수형 변수 5개를 선언한 후 정보처리기사의 각 과목의 정답 개수를 입력받아 변수에 할당하시오. 한 과목이라도 8개 미만인 경우 "불합격입니다"를 출력하고 총 개수가 60개 이상이면 "합격입니다"를 출력하는 프로그램을 작성하시오.
package Aug_seventeenth_reviw;
import java.util.Scanner;
public class ex10 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("소프트웨어 설계: ");
int sw1 = sc.nextInt();
System.out.print("소프트웨어 개발: ");
int sw2 = sc.nextInt();
System.out.print("데이터베이스 구축 입력: ");
int db = sc.nextInt();
System.out.print("프로그래밍 언어 활용: ");
int pro = sc.nextInt();
System.out.print("정보시스템 구축 관리: ");
int sys = sc.nextInt();
int sum =sw1+sw2+db+pro+sys;
if((sw1>=8 && sw2>=8 && db>=8 && pro>=8 && sys>=8) && sum>=60) {
System.out.println("합격");
}else{
System.out.println("불합격");
}
}
}
[9. 다중if~else 문예제]
예제1)
정수형 변수 score를 선언하고 키보드로 값을 입력받은 후 값을 할당하시오. 입력받은 값이 90점 이상이면 "A학점 입니다", 80점 이상 90점 미만인 경우는 "B학점입니다",70점 이상 80점 미만인 경우는 "C학점입니다"를 출력하고 70점 미만인 경우는 "F학점입니다"를 출력하시오.
package Aug_seventeenth_reviw;
import java.util.Scanner;
public class ex10 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("점수 입력: ");
int score = sc.nextInt();
if(score>=90) {
System.out.println("A학점입니다");
}else if(score>=80){
System.out.println("B학점입니다");
}else if(score>=70){
System.out.println("C학점입니다");
}else {
System.out.println("F학점입니다");
}
}
}
예제2)
알파벳 하나를 입력 받은 후 A를 입력한 경우는 "A입력",B를 입력한 경우는 "B입력",C를 입력한 경우는 "C입력"을 출력하고 그 외의 알파벳을 입력한 경우는 "A,B,C외 입력"을 출력하시오.
package Aug_seventeenth_reviw;
import java.util.Scanner;
public class ex10 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("알파벳 입력: ");
String alp = sc.next();
if(alp.equals("A")) {
System.out.println("A입력");
}else if(alp.equals("B")) {
System.out.println("B입력");
}else if(alp.equals("C")) {
System.out.println("C입력");
}else {
System.out.println("A,B,C 외 입력");
}
}
}
예제3)
버스 단말기에 버스카드를 태그하려고 합니다. 현재 카드 잔액과 탐승자가 성인/청소년/어린이 인지 입력한 후 잔액이 충분한 경우에는 인사말을 출력하고 부족한 경우에는 "잔액이 부족합니다"를 출력하시오.
(성인-감사합니다(1800원)/ 청년-반갑습니다(1500원)/ 어린이-안녕하세요(1000원))
package Aug_seventeenth_reviw;
import java.util.Scanner;
public class ex10 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("잔액: ");
int money = sc.nextInt();
System.out.print("성인/청소년/어린이: ");
String human = sc.next();
if(money>=1800 && human.equals("성인")) {
System.out.println("감사합니다");
}else if(money>=1500 && human.equals("청소년")) {
System.out.println("반갑합니다");
}else if(money>=1000 && human.equals("어린이")) {
System.out.println("안녕하세요");
}else {
System.out.println("잔액이 부족합니다");
}
}
}
[9. switch 문예제]
예제1)
String 형 변수 data를 선언하고 키보드로 값을 입력받으시오. switch~case 문을 사용하여 입력받은 값이 "한국어" 이면 "안녕하세요","영어"이면"헬로","중국어"이면 "니하오","일본어"이면 "곤니찌와"를 출력하고 그 외 다른 단어를 입력할 경우에는 "디른 값 입력"을 출력하시오.
package Aug_seventeenth_reviw;
import java.util.Scanner;
public class ex10 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("입력: ");
String input = sc.next();
switch (input) {
case ("한국어"):
System.out.println("안녕하세요");
break;
case ("영어"):
System.out.println("헬로");
break;
case ("중국어"):
System.out.println("니하오");
break;
case ("일본어"):
System.out.println("곤니찌와");
break;
default:
System.out.println("다른 값 입력");
}
}
}
예제2)
월(1~12)을 입력받아 해당 월이 봄,여름,가을,겨울 중 어느 계절인지 출력하시오.
(1,2,12월 -> 겨울 / 3,4,5월 ->봄 / 6,7,8월 ->여름 /9,10,11월 ->가을)
package Aug_seventeenth_reviw;
import java.util.Scanner;
public class ex10 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("월(1~12) 입력: ");
int input = sc.nextInt();
switch (input) {
case 3, 4, 5:
System.out.println(input + "월은 봄입니다");
break;
case 6, 7, 8:
System.out.println(input + "월은 여름입니다");
break;
case 9, 10, 11:
System.out.println(input + "월은 가을입니다");
break;
case 1, 2, 12:
System.out.println(input + "월은 겨울입니다");
break;
default:
}
}
}
[10. 조건문 예제]
예제1-1
자판기 프로그램을 만들어 봅시다. 넣은 금액을 입력하고 메뉴를 고른 뒤 잔돈을 출력하시오.
예제1-2
입력한 금액이 선택한 메뉴의 가격보다 적으면 "돈이 부족해요"를 출력하시오.
예제1-3
잔돈을 출력할 때 천원/오백원/백원을 몇 개 줘야 하는지 계산하여 출력하시오.
package Aug_seventeenth_reviw;
import java.util.Scanner;
public class ex10 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("넣을 금액: ");
int pay = sc.nextInt();
System.out.println("--메뉴--");
System.out.print("1. 콜라(1800원) 2.파워에이드(2000원) 3.탄산수(1200원) >> ");
int menu = sc.nextInt();
int change = 0;
// 1. 잔돈계산
if (menu == 1) {
change = pay - 1800;
} else if (menu == 2) {
change = pay - 2000;
} else if (menu == 3) {
change = pay - 1200;
} else {
System.out.println("잔돈 : " + change);
}
if (change >= 0) {
System.out.println("잔돈 : "+change+"원");
System.out.println("천원 : " + change / 1000);
System.out.println("오백원 : " + change % 1000 / 500);
System.out.println("백원 : " + change % 1000 % 500 / 100);
} else {
System.out.println("돈이 부족해요");
}
}
}