자바수업 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);
예제
- 변수를 이용한 자기소개 출력
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);
- 점수를 변수화하여 출력하기
int math = 98;
int science = 89;
int eng = 76;
System.out.println("수학: " + math);
System.out.println("과학: " + science);
System.out.println("영어: " + eng);
- 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 : 실수형으로 나타내되 소수점아래 두자리까지 표현
- 기본 시급과 일한 시간을 입력받아 월급을 계산하시오
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);
- 허리 둘레가 32인치일때 이를 cm로 변환하시오
int inch = 32;
double inchToCm = 2.54;
double cm = inch * inchToCm;
System.out.println(cm + "cm");
- 두 개의 정수를 입력받아 곱과 몫, 나머지를 출력하시오
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);
- 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);
- 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);
- 지갑에 든 만원권 3장, 오천원권 4장, 천원권 7장의 총합이 얼마인지 구하시오
int money = 0;
money += 30000;
money += 20000;
money += 7000;
System.out.println(money + "원");
- 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입니다.");
- 세 자리 정수 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)); //이렇게 써도 결과는 같다. 문자열이 중간에 없기 때문.
- 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);
Author And Source
이 문제에 관하여(자바수업 2일차), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@0829kuj/자바수업-2일차저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)