자바수업 2일차

한 일

  • github 동기화된 파일 내려받기
  • java의 변수형 지정
  • java의 printf, println 명령어로 출력하기(+제어문자)
  • java에서 사용자의 입력값을 받아 사용하기
  • 산술연산자
  • 후위, 전위연산자
  • while 반복문
  • if, if else, if else if else문으로 조건문 만들기

github

  • git pull "url"
    동기화된 파일 내려받기

java

변수형 지정

  • int 정수형
  • double 실수형
    위의 두 변수형은 java의 기본타입에 해당한다.
    java의 기본타입
    -정수타입: byte, char, short, int, long
    -실수타입: float, double
    -논리타입: boolean
    논리타입인 boolean은 true(1), false(0) 두 개의 값만 할당할 수 있다.

문자열 변수형 지정

  • String 변수명 = "들어갈 문자";
    문자열 변수형으로 자주쓰이는 String은 자주 쓰이는 int(정수형), (실수형)과 달리 기본타입이 아니라 클래스 타입에 해당한다.
    클래스 타입에 대해서는 추후 학습예정.

printf, println 명령어로 출력하기(+제어문자)

  • printf("출력할 값은 %d입니다.", 32);
    ""내부에 한줄로 출력문을 작성 후, 형식 문자열을 통해 값을 넣는다.
    출력 후 자동줄내림 하지 않음.

  • 출력 서식
    %d : 정수형으로 출력 %f : 소수점형식으로 출력
    %c : 문자형식으로 출력 %s : 문자열형식으로 출력
    %n, \n : 줄바꿈

  • 제어문자
    \t : tab %% : % \n : 줄바꿈

  • println("출력할 값은" + 32 + "입니다.");
    +로 문자나 변수를 이을 수 있다.
    문자를 포함한 실수, 정수의 연산은 모두 문자열로 바뀌니 주의.
    출력 후 자동으로 줄내림을 해준다.

		System.out.println("총 " + 20 + 30 + "입니다.");
		System.out.println(20 + 30);


위 결과처럼 차이가 있으니 주의.
되도록 연산은 변수를 지정해서 실행 후 해당변수를 호출.

사용자의 입력값을 받아 사용하기

  • 공식
    import java.util.Scanner;
    Scanner 변수명1 = new Scanner(System.in);
    변수형 변수명2 = scanner.nextInt();
import java.util.Scanner;	//java.util 패키지 안에 Scsnner 클래스를 불러와서 사용가능
public class UserInput {
	public static void main(String[] args) {
		// 입력을 받는 클래스. scanner의 자리는 변수의 자리임.
		Scanner scanner = new Scanner(System.in);	//스캐너 객체를 선언
		System.out.print("섭씨온도를 입력해주세요 : ");
		double c = scanner.nextDouble();	//스캐너로 정수를 입력받아 변수 c에 저장, 실행 시 입력을 대기하고 엔터키가 입력되면 종료
                scanner.close();	//스캐너를 종료시킴. 필수는 아님.
		double f = (c * 9/5) + 32;
		
		System.out.printf("섭씨 %.1f 는 화씨 %.1f 이다.", c, f);
	}
}

실행예시

섭씨온도를 화씨온도로 바꾸는 예제.
여기서 nextInt()자리엔 변수형에 따라 nextDouble(), nextLine()등이 들어간다.

후위, 전위연산자

  • 변수++, 변수--
    연산을 수행한 후 변수에 +1 혹은 -을 해줌
  • ++변수, --변수
    연산을 수행하기 전 변수에 +1 혹은 -을 해줌
    바뀐 값이 연산에 적용됨

while 반복문

  • while {실행할 소스코드}
  • while (true) {실행할 소스코드}
// while 반복문
while(true) {
	System.out.println("헬로우 월드!");
}

if, if else, if else if else문

  • if문
    if (조건) {조건이 참일 경우 동작할 소스코드}
Scanner scanner = new Scanner(System.in);
System.out.println("사과의 갯수: ");

Scanner scanner2 = new Scanner(System.in);
System.out.println("바나나의 갯수: ");

int apple = scanner.nextInt();
int banana = scanner2.nextInt();
scanner.close();	// 스캐너 종료(더 이상 사용안할때)

if (apple > banana) {
	System.out.println(apple + "이 "+ banana + "보다 많다.");
}
if (apple < banana) {
	System.out.println(banana + "가(이) "+ apple + "보다 많다.");
}
if (apple == banana) {
	System.out.println(apple + "과 " + banana + "의 수가 같다.");
}
System.out.println("프로그램 종료");
  • if else 문
    if (조건) {조건이 참일 경우 동작할 소스코드}
    else {위의 조건이 모두 거짓일 경우 동작할 소스코드}
Scanner scanner = new Scanner(System.in);
System.out.println("사과의 갯수: ");

Scanner scanner2 = new Scanner(System.in);
System.out.println("바나나의 갯수: ");

int apple = scanner.nextInt();
int banana = scanner2.nextInt();
scanner.close();	// 스캐너 종료(더 이상 사용안할때)

if (apple > banana) {
	System.out.println(apple + "이 "+ banana + "보다 많다.");
}
else {
	System.out.println(banana + "가(이) "+ apple + "보다 많거나 같다.");
}

System.out.println("프로그램 종료");
  • if else if else문
    if (조건) {조건이 참일 경우 동작할 소스코드}
    else if (조건) {조건이 참일 경우 동작할 소스코드}
    else {위의 조건이 모두 거짓일 경우 동작할 소스코드}
Scanner scanner = new Scanner(System.in);
System.out.println("사과의 갯수: ");

Scanner scanner2 = new Scanner(System.in);
System.out.println("바나나의 갯수: ");

int apple = scanner.nextInt();
int banana = scanner2.nextInt();
scanner.close();	// 스캐너 종료(더 이상 사용안할때)

if (apple > banana) {
	System.out.println("apple가(이) banana보다 많다.");
}
else if (apple < banana) {
	System.out.println("banana가(이) apple보다 많다.");
}
else {
	System.out.println("apple과 banana의 갯수가 같다.");
}

System.out.println("프로그램 종료");

for 반복문

  • for 반복문 : for(초기값; 초전; 증감){명령문;}
// for 반복문 : for(초기값; 초전; 증감){명령문;}
for(int i = 0; i <= 10; i++) {
	System.out.println("i는 " + i);
}
// 1에서 100까지의 합은
int sum = 0;
for(int x = 1; x <= 100; x++) {
	sum += x;
}
System.out.println("sum = " + sum);

예제

  1. 변수를 이용한 자기소개 출력
String name = "홍팍";
int age = 35;
double height = 176.4;
boolean javaBeginner = true;
		
System.out.printf("이름: %s\n나이: %d\n신장: %f\n입문자입니까? %s", name, age, height, javaBeginner);

  1. 점수를 변수화하여 출력하기
int math = 98;
int science = 89;
int eng = 76;
System.out.println("수학: " + math);
System.out.println("과학: " + science);
System.out.println("영어: " + eng);

  1. pringf()를 사용하여 월~금요일의 평균구하기
double mon = 8.62;
double tue = 10.23;
double wed = 12.48;
double thu = 7.82;
double fri = 9.54;
double total = mon + tue + wed + thu + fri;
System.out.printf("월요일부터 금요일까지의 총 합은 $%.2f 입니다.", total);	//%.2f : 실수형으로 나타내되 소수점아래 두자리까지 표현

  1. 기본 시급과 일한 시간을 입력받아 월급을 계산하시오
Scanner scanner1 = new Scanner(System.in);
System.out.println("기본 시급을 입력해주세요: ");

Scanner scanner2 = new Scanner(System.in);
System.out.println("일한 시간을 입력해주세요: ");

int pay = scanner1.nextInt();
int workHour = scanner2.nextInt();

int monthPay = pay * workHour; 
System.out.println(monthPay);

  1. 허리 둘레가 32인치일때 이를 cm로 변환하시오
int inch = 32;
double inchToCm = 2.54;
double cm = inch * inchToCm;
System.out.println(cm + "cm");

  1. 두 개의 정수를 입력받아 곱과 몫, 나머지를 출력하시오
Scanner x = new Scanner(System.in);
System.out.println("x의 값을 입력하시오. ");
int xx = x.nextInt();

Scanner y = new Scanner(System.in);
System.out.println("y의 값을 입력하시오. ");
int yy = y.nextInt();

System.out.printf("곱하기: %d X %d = %d\n", xx, yy, xx * yy);
System.out.printf("나눈 몫: %d / %d = %d\n", xx, yy, xx / yy);
System.out.printf("나눈 나머지: %d %% %d = %d\n", xx, yy, xx % yy);

  1. 7582초를 ㅇㅇ시간 ㅇㅇ분 ㅇㅇ초로 출력하시오
int totalSec = 7582;
int hour = totalSec / (60 * 60);
int min = (totalSec % (60 * 60)) / 60;
int sec = totalSec % 60;

System.out.printf("%d 초는 %d시간 %d분 %d초이다.", totalSec, hour, min, sec);

  1. 100미터를 18초에 뛴 기록을 km/h 단위로 변환, 출력하시오
// 속도(km/h) = 거리(km) / 시간(h)
double meter = 100;
double sec = 18;
double chosok = meter / sec;
System.out.printf("%.2fm/s\n",chosok);	//%.2f : 실수를 소수점 아래 2자리까지만 표현
double sisok = chosok * 3600 / 1000;

System.out.printf("%.1fkm/h\n", sisok);

  1. 지갑에 든 만원권 3장, 오천원권 4장, 천원권 7장의 총합이 얼마인지 구하시오
int money = 0; 
money += 30000;
money += 20000;
money += 7000;

System.out.println(money + "원");

  1. 1월, 2월, 3월의 몸무게 평균을 구하시오
double month1 = 81.36;
double month2 = month1 + 0.71;
double month3 = month2 - 0.43;
double avg = (month1 + month2 + month3) / 3;

System.out.println("1~3월까지의 평균은 " + avg + "kg입니다.");

  1. 세 자리 정수 374의 각 자리 숫자의 총합을 구하시오
int num = 374;
int one = num % 10 ; 	// 일의 자리 구하기
int two = (num % 100) / 10;	// 10의 자리 구하기
int three = num / 100;	// 백의 자리 구하기
System.out.println(one + two + three);	// 이렇게 써도
System.out.println((374 % 10) + ((374 % 100) / 10) + (374 / 100));	//이렇게 써도 결과는 같다. 문자열이 중간에 없기 때문.

  1. 152365원의 최소 지페 수를 계산하시오
int money1 = 152365;

int oman = money1 / 50000;
int man = (money1 % 50000) / 10000;
int ochun = (money1 % 50000) % 10000 / 5000;
int chun = (money1 % 50000) % 10000 % 5000 / 1000;
int totalCnt = oman + man + ochun + chun;
int sale = money1 % 1000;

System.out.printf("5만원 x" + oman);
System.out.println("1만원 x" + man);
System.out.println("5천원 x" + ochun);
System.out.println("1천원 x" + chun);
System.out.println("---------");		
System.out.println("총 장수: " + totalCnt);	//println()으로 출력할때 변수지정안하고 바로 oman+man...으로 계산하면 문자열로 계산됨
System.out.println("금액: " + (money1 / 1000) * 1000);
System.out.printf("할인: %d원", sale);

좋은 웹페이지 즐겨찾기