2021/01/13 - [공부/자바(java) 융합개발자 2차(복습)] - [자바 기초] 이지스퍼블리싱 Do it! 공부단 신청
2021/01/13 - [공부/자바(java) 융합개발자 2차] - [자바 기초] 21일차 - 반복문(for, while, do ~ while)
2021/01/12 - [공부/자바(java) 융합개발자 2차] - [자바 기초] 20일차 일지 - Eclipse에서 Hello 출력, 변수, if문
|
그림으로 더 쉽게~ Do it! 자바!
01. 자바 프로그래밍 시작하기
"1부터 100까지 더해 줘!" -> 소스 코드 -> 컴파일러 -> OK!
사람의 언어 -> 프로그래밍 언어 -> 번역 -> 실행
노력을 이기는 재능은 없고
노력을 외면하는 결과도 없다.
- 이창호 9단 -
첫째마당 자바 기본 익히기
01. 자바 프로그래밍 시작하기 : 컴퓨터에게 명령하는 방법을 배운다.
01-1. 프로그래밍과 자바
01-2. 자바 개발 환경 설치하기
01-3. 이클립스로 첫 프로그램 만들기
02. 변수와 자료형
03. 자바의 여러 가지 연산자
04. 제어 흐름 이해하기
01-1. 프로그래밍과 자바
자바는 패키지 단위로 이루어진다.
이 패키지 안에 class를 만든다.
만든 클래스에서 코딩을 한다.
자바는 대소문자를 구분하며 문장의 끝에는 반드시 ; 세미콜론을 찍어주어야 한다.
package com.day01;
public class Exam01 {
}
기본적인 시작 화면이고 { } 속에 시작점을 표시해 주어야 하는데
public static void main(String[] args); {
}
이걸 적어주고 여기 안에 코딩을 한다.
package com.day01;
public class Exam01 {
public static void main(String[] args); {
}
}
Hello 출력해보기
package com.day01;
public class Exam01 {
public static void main(String[] args) {
System.out.println("Hello");
}
}
작성한 class 우클릭 > Run As > Java Application
눌러서 실행
src > com.day01 > Exam01.java
Public class Exam01
클래스 이름이 동일해야 한다!(대소문자 구별)
이름 수정 : 마우스 우클릭 > Refactor > Rename
코딩은 메모장에서도 가능하지만 일일히 다 맞춰줘야 하기 때문에 불편하다 -> Eclipse를 사용한다.
Eclipse는 코드 작성을 편하게 해 준다.
println에서 ln은 개행의 역할을 한다-> HTML에서 <br>을 넣어주는 것과 같다.
다음을 출력해보자(print 3번 이용)Hello자바 공부자바 공부
package com.day01;
public class Exam01 {
public static void main(String[] args) {
System.out.println("Hello");
System.out.print("자바 공부");
System.out.print("자바 공부");
}
}
주석
package com.day01;
public class Exam01 {
public static void main(String[] args) {
// 나는 한 줄 주석을 쓸 때 사용해요.
/*
* 나는 여러 줄 주석을 쓸 때
* 사용하지요
* 아주 편리하답니다~!
*/
}
}
실행시켜 보면 주석 부분은 나오지 않는다.
자바는 변수의 유형을 명확하게 정의해주어야 한다.
- age라는 변수에 20을 저장해보자.
package com.day01;
public class Exam01 {
public static void main(String[] args) {
int age = 20;
System.out.println(age);
}
}
System.out.println(_______);
(_________)이 속에 변수를 넣어주면 변수에 저장된 값 ex 20을 출력해 주고
"" 속에 변수명을 넣으면 문자 그대로 age를 출력해준다.
package com.day01;
public class Exam01 {
public static void main(String[] args) {
int age = 20;
System.out.println(age);
System.out.println("age");
}
}
정수형 변수 선언
int : 정수형
String : 문자형
age라는 변수에 20을 저장하고
addr이라는 변수에 부산을 저장해보자.
package com.day01;
public class Exam01 {
public static void main(String[] args) {
int age = 20;
String addr = "부산";
System.out.println(age);
System.out.println(addr);
}
}
다음과 같이 출력하라.
나이 : 20
주소 : 부산
package com.day01;
public class Exam01 {
public static void main(String[] args) {
int age = 20;
String addr = "부산";
System.out.println("나이 : " + age);
System.out.println("주소 : " + addr);
}
}
"문자"와 변수를 연결하려면 + 를 사용하면 된다.
System.out.println("출력하고싶은 문자" + 변수명);
name이라는 변수를 선언하고 홍길동을 할당하고 다음과 같이 출력하여라.
이름 : 홍길동
package com.day01;
public class Exam01 {
public static void main(String[] args) {
String name = "홍길동";
System.out.println("이름 : " + name);
}
}
변수 a, b를 선언하고 각각 15와 8을 할당한 뒤 두수의 합을 출력하여라.
package com.day01;
public class Exam01 {
public static void main(String[] args) {
int a = 15;
int b = 8;
System.out.println("두 수의 합 : " + a + b);
}
}
결과가 이렇게 나오는 이유는 "두 수의 합"이라는 문자 때문에 + 의 역할이 덧셈이 아니라
문자와 변수를 연결시켜주는 역할로 인식한 것
따라서 "두 수의 합 : " + "15" + "8" 을 연결시켜서
두 수의 합 : 158
이렇게 된 것.
이럴 때는 정수형 변수끼리 더해질 수 있도록 (a+b) 형태로 적어주면 된다
package com.day01;
public class Exam01 {
public static void main(String[] args) {
int a = 15;
int b = 8;
System.out.println("두 수의 합 : " + (a + b));
}
}
만약 문자 없이 쓴다면
package com.day01;
public class Exam01 {
public static void main(String[] args) {
int a = 15;
int b = 8;
System.out.println(a + b);
}
}
알아서 덧셈을 해서 결과를 출력해준다.
다음과 같이 출력하여라.
a-b = 7
a*b = 120
a/b = 1
package com.day01;
public class Exam01 {
public static void main(String[] args) {
int a = 15;
int b = 8;
System.out.println("a + b = " + (a + b));
System.out.println("a * b = " + a * b);
System.out.println("a + b = " + a / b);
}
}
곱셈과 나눗셈은 덧셈보다 우선하므로 ()를 해줄 필요는 없다
a를 b로 나눈 나머지를 구하여라
package com.day01;
public class Exam01 {
public static void main(String[] args) {
int a = 15;
int b = 8;
System.out.println("a % b = " + a % b);
}
}
7
%는 나머지를 출력한다.
반지름 r을 5로 지정하고
원의 넓이를 출력하시오
원의 넓이 = 반지름 * 반지름 * 원주율
원주율 : 3.14
package com.day01;
public class Exam01 {
public static void main(String[] args) {
int r = 5;
System.out.println(r*r*3.14);
}
}
int r은 정수형이지만 부동소수점 3.14가 더 크기 때문에 자동으로 실수형으로 출력된다.
pi 변수를 선언하고 3.14를 할당하여라.
3.14는 실수형이므로 정수형 int로 선언된 변수 pi에 할당될 수 없다.
그러므로 실수가 들어갈 pi는 double형으로 선언해 주어야 한다.
package com.day01;
public class Exam01 {
public static void main(String[] args) {
int r = 5;
double pi = 3.14;
System.out.println(r*r*pi);
}
}
78.5
78.5
결과는 같으나 pi값처럼 변하지 않는 값 앞에는 final을 붙여주고 변수명도 PI처럼 대문자로 잡아준다.
컴퓨터 입장에서는 5라는 수는 101이다. 물론 앞에 0이 더있다.
따라서
정수 int : 4bye(1바이트 -> 8비트)
실수 double : 8바이트
float : 4바이트
double, float은 둘 다 실수이지만 실수를 잡을 때 따로 말이 없다면 기본은 double
float이 실수형인 것을 알았으니 pi를 선언하고 3.14를 할당해보자.
에러 발생 -> float은 수 뒤에 f를 붙여주어야 한다.
결과는 78.5로 동일하다.
float형 f 변수에 5 할당
package com.day01;
public class Exam01 {
public static void main(String[] args) {
float f = 5;
System.out.println(f);
}
}
5.0
-> 실수형으로 잡아줬기 때문에 결과값은 자동으로 5.0과 같이 실수형으로 출력된다.
package com.day01;
public class Exam01 {
public static void main(String[] args) {
float f = 5f;
System.out.println(f);
}
}
5 뒤에 f를 붙여 주어도 결과는 동일하게 5.0
그러나 이렇게 하면 에러가 난다
package com.day01;
public class Exam01 {
public static void main(String[] args) {
float f = 5.0f;
int num = 10;
f=num;
System.out.println(f);
}
}
실수형 변수 f에 정수형 변수 num의 값 10을 집어넣고 f를 출력하면
10.0의 형태로 출력된다.
f는 float형, num은 int형으로 유형이 다르고 둘 다 동일하게 4바이트 크기이나
실수 > 정수(정수보다 실수를 더 큰 범위로 보기 때문에 이렇게 더 큰 범위로 집어넣는 것은 가능하다)
자동으로 형태가 변환된다.
반대로
정수형 변수에 실수를 집어넣으려고 하면 에러가 난다.
다시 위에서
f=num; 을 했을 때 정수 10이 실수 10.0으로 자동 형변환이 된다.
num=f;를 해주고 싶다면 명시적 형 변환을 시켜주면 된다.
정수형 변수 num에 실수형 변수 f의 값을 넣고 싶으면
실수형 f를 (int)f 로 적어주어 명시적으로 형변환을 시켜준다.
Exam02 a변수에 49를 할당하고, a가 50보다 크면 "50보다 크다", 작으면 "50보다 작다"를 출력하여라.
package com.day01;
public class Exam02 {
public static void main(String[] args) {
int a = 49;
if (a>50) {
System.out.println("50보다 크다");
} else {
System.out.println("50보다 작다");
}
}
}
if (조건) {
조건이 true인 경우 시행할 내용
} else {
조건이 false인 경우 시행할 내용
}
a가 짝수면 짝수, 홀수면 홀수라고 출력하라.
package com.day01;
public class Exam02 {
public static void main(String[] args) {
int a = 49;
if (a%2==0) {
System.out.println("짝수");
} else {
System.out.println("홀수");
}
}
}
홀수
= 은 할당의 의미이므로 같은가를 묻고 싶다면 == 로 써야 한다.
다중 if문
변수 a에 51을 할당하고
a가 50보다 크면 "50보다 크다", 100보다 크면 "100보다 크다", 200보다 크면 "200보다 크다", 그 외에는 "else"라고 출력
package com.day01;
public class Exam02 {
public static void main(String[] args) {
int a = 51;
if (a > 50) {
System.out.println("50보다 크다");
} else if (a > 100) {
System.out.println("100보다 크다");
} else if (a > 200) {
System.out.println("200보다 크다");
} else {
System.out.println("else");
}
}
}
50보다 크다
개행을 하고 싶다 ->
System.out.println();
만 적어주면 된다.
a에 202를 할당하고 50보다 크면 "50보다 크다",
100보다 크면 "50보다 크다", "100보다 크다",
200보다 크면 "50보다 크다", "100보다 크다", "200보다 크다"
가 모두 출력되게 하라
package com.day01;
public class Exam02 {
public static void main(String[] args) {
int a = 202;
if (a > 50) {
System.out.println("50보다 크다");
} if (a > 100) {
System.out.println("100보다 크다");
} if (a > 200) {
System.out.println("200보다 크다");
} else {
System.out.println("else보다 크다");
}
}
}
50보다 크다
100보다 크다
200보다 크다
a가 202일 때
a가 50보다 큰지, 50보다 크고 100보다 작은지, 200보다 큰지, 그 외인지?
package com.day01;
public class Exam02 {
public static void main(String[] args) {
int a = 202;
if (a > 50) {
System.out.println("50보다 크다");
} if (a > 50 && a < 100) {
System.out.println("100보다 크다");
} if (a > 200) {
System.out.println("200보다 크다");
} else {
System.out.println("else보다 크다");
}
}
}
50보다 크다
200보다 크다
&&는 and와 같다.
Exam 03 입력한 수가 짝수인지 홀수인지를 출력하시오.
package com.day01;
import java.util.Scanner;
public class Exam03 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("숫자를 입력하세요");
int a = sc.nextInt(); // 정수를 입력받아오는 함수
if (a%2 == 0) {
System.out.println("짝수");
} else {
System.out.println("홀수");
}
}
}
숫자를 입력하세요
29
홀수
import 'Scanner' 를 해줘야 에러가 나이 않음
만약 Console 창이 보이지 않는다면
Window > Show View > Console 클릭
이름과 나이를 입력받아 나이가 20세 이상이면 입장 가능,
15세 이상 20세 미만이면 부모님과 동반 입장, 15세 미만이면 입장 불가능이라고 출력하라
package com.day01;
import java.util.Scanner;
public class Exam03 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("이름을 입력하세요");
String name = sc.next(); //문자를 입력받음
System.out.println(name + "씨의 나이를 입력하세요");
int age = sc.nextInt(); //정수를 입력받음
if (age >= 20) {
System.out.println(name + "씨는 " + age + "세로 입장 가능");
} else if (age >= 15) {
System.out.println(name + "씨는 " + age + "세로 부모님과 동반 입장");
} else {
System.out.println(name + "씨는 " + age + "세로 입장 불가능");
}
}
}
만약 else if 말고 그냥 if와 else만 쓰고 싶다면
package com.day01;
import java.util.Scanner;
public class Exam03 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("이름을 입력하세요");
String name = sc.next(); //문자를 입력받음
System.out.println(name + "씨의 나이를 입력하세요");
int age = sc.nextInt(); //정수를 입력받음
if (age >= 20) {
System.out.println(name + "씨는 " + age + "세로 입장 가능");
} if (age >= 15) {
System.out.println(name + "씨는 " + age + "세로 부모님과 동반 입장");
} else {
System.out.println(name + "씨는 " + age + "세로 입장 불가능");
}
}
}
이렇게 써주면 두줄 다 나오므로 XX
package com.day01;
import java.util.Scanner;
public class Exam03 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("이름을 입력하세요");
String name = sc.next(); //문자를 입력받음
System.out.println(name + "씨의 나이를 입력하세요");
int age = sc.nextInt(); //정수를 입력받음
if (age >= 20) {
System.out.println(name + "씨는 " + age + "세로 입장 가능");
} if (age >= 15 && age <20) {
System.out.println(name + "씨는 " + age + "세로 부모님과 동반 입장");
} if(age < 15 ) {
System.out.println(name + "씨는 " + age + "세로 입장 불가능");
}
}
}
이름을 입력하세요
로니
로니씨의 나이를 입력하세요
22
로니씨는 22세로 입장 가능
이렇게 써줘야 함
else if를 써주는 것이 가장 깔끔함
Exam04 점수와 커트라인을 입력받아 합격인지 불합격인지 출력하시오.
package com.day01;
import java.util.Scanner;
public class Exam04 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("점수와 커트라인을 입력해 주세요");
int score = sc.nextInt();
int cut = sc.nextInt();
if (score >= cut) {
System.out.println(score + "점으로 커트라인 " + cut + "점 이상이므로 합격");
} else {
System.out.println(score + "점으로 커트라인 " + cut + "점 미만이므로 불합격");
}
}
}
점수와 커트라인을 입력해 주세요
20 50
20점으로 커트라인 50점 미만이므로 불합격
또는
package com.day01;
import java.util.Scanner;
public class Exam04 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("점수를 입력해 주세요");
int score = sc.nextInt();
System.out.println("커트라인을 입력해 주세요");
int cut = sc.nextInt();
if (score >= cut) {
System.out.println(score + "점으로 커트라인 " + cut + "점 이상이므로 합격");
} else {
System.out.println(score + "점으로 커트라인 " + cut + "점 미만이므로 불합격");
}
}
}
점수를 입력해 주세요
50
커트라인을 입력해 주세요
40
50점으로 커트라인 40점 이상이므로 합격
점수가 5의 배수입니까?
package com.day01;
import java.util.Scanner;
public class Exam04 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("점수를 입력해 주세요");
int score = sc.nextInt();
if (score%5==0) {
System.out.println(score + "는 5의 배수입니다.");
} else {
System.out.println(score + "는 5의 배수가 아닙니다.");
}
}
}
점수를 입력해 주세요
20
20는 5의 배수입니다.
점수를 입력해 주세요
3
3는 5의 배수가 아닙니다.
점수가 3의 배수입니까?
package com.day01;
import java.util.Scanner;
public class Exam04 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("점수를 입력해 주세요");
int score = sc.nextInt();
if (score%3==0) {
System.out.println(score + "는 3의 배수입니다.");
} else {
System.out.println(score + "는 3의 배수가 아닙니다.");
}
}
}
점수를 입력해 주세요
33
33는 3의 배수입니다.
점수를 입력해 주세요
55
55는 3의 배수가 아닙니다.
Sys까지 입력하고 Ctrl + SpaceBar를 입력하면 저렇게 자동완성을 할 수 있다.
Exam05 : 이름, 국어, 영어, 수학 점수를 입력받아 학생의 총점과 평균을 출력하기
package com.day01;
import java.util.Scanner;
public class Exam05 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("학생의 이름을 입력하세요");
String name = sc.next();
System.out.println(name + "학생의 국어, 영어, 수학 점수를 입력하세요");
int kor = sc.nextInt();
int eng = sc.nextInt();
int mat = sc.nextInt();
int sum = kor + eng + mat;
int avg = sum/3;
System.out.println(name + " 학생 총점 : " + sum + ", 평균 : " + avg);
}
}
학생의 이름을 입력하세요
로닝구
로닝구학생의 국어, 영어, 수학 점수를 입력하세요
35 84 52
로닝구 학생 총점 : 171, 평균 : 57
여기서 평균은 실수가 나올 수 있으므로 평균은 float형으로 선언
package com.day01;
import java.util.Scanner;
public class Exam05 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("학생의 이름을 입력하세요");
String name = sc.next();
System.out.println(name + "학생의 국어, 영어, 수학 점수를 입력하세요");
int kor = sc.nextInt();
int eng = sc.nextInt();
int mat = sc.nextInt();
int sum = kor + eng + mat;
float avg = sum/3;
System.out.println(name + " 학생 총점 : " + sum + ", 평균 : " + avg);
}
}
학생의 이름을 입력하세요
로닝구
로닝구학생의 국어, 영어, 수학 점수를 입력하세요
34 58 44
로닝구 학생 총점 : 136, 평균 : 45.0
학생의 국어, 영어, 수학 점수를 입력하고 평균이 90점 이상이면 A학점, 80점 이상이면 B학점, 70점 이상이면 C학점, 나머지는 F학점으로 처리하라.
package com.day01;
import java.util.Scanner;
public class Exam05 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("학생의 이름을 입력하세요");
String name = sc.next();
System.out.println(name + "학생의 국어, 영어, 수학 점수를 입력하세요");
int kor = sc.nextInt();
int eng = sc.nextInt();
int mat = sc.nextInt();
int sum = kor + eng + mat;
float avg = sum/3;
if (avg>=90) {
System.out.println(name + " 학생 평균 : " + avg + "으로 A학점");
} else if (avg>=80) {
System.out.println(name + " 학생 평균 : " + avg + "으로 B학점");
} else if (avg>=70) {
System.out.println(name + " 학생 평균 : " + avg + "으로 C학점");
} else {
System.out.println(name + " 학생 평균 : " + avg + "으로 F학점");
}
}
}
학생의 이름을 입력하세요
로니
로니학생의 국어, 영어, 수학 점수를 입력하세요
88 68 32
로니 학생 평균 : 62.0으로 F학점
학생의 이름을 입력하세요
로닝2
로닝2학생의 국어, 영어, 수학 점수를 입력하세요
98 54 88
로닝2 학생 평균 : 80.0으로 B학점
위의 예제를 변형해서 System.out.println();을 한 번만 써서 나타내어라.
package com.day01;
import java.util.Scanner;
public class Exam05 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("학생의 이름을 입력하세요");
String name = sc.next();
System.out.println(name + "학생의 국어, 영어, 수학 점수를 입력하세요");
int kor = sc.nextInt();
int eng = sc.nextInt();
int mat = sc.nextInt();
int sum = kor + eng + mat;
float avg = sum/3;
String grade;
if (avg>=90) {
grade = "A학점";
} else if (avg>=80) {
grade = "B학점";
} else if (avg>=70) {
grade = "C학점";
} else {
grade = "F학점";
}
System.out.println(name + " 학생 평균 : " + avg + "으로 " + grade);
}
}
학생의 이름을 입력하세요
꺄르륵
꺄르륵학생의 국어, 영어, 수학 점수를 입력하세요
98 55 48
꺄르륵 학생 평균 : 67.0으로 F학점
Exam 06 두 수를 입력받아 큰 수가 얼마이고, 작은 수가 얼마이며, 두 수의 차이를 나타내시오
package com.day01;
import java.util.Scanner;
public class Exam05 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("숫자 두 개를 입력하세요");
int no1 = sc.nextInt();
int no2 = sc.nextInt();
int max=0;
int min=0;
if (no1 > no2) {
max = no1;
min = no2;
} else if (no1<no2) {
max = no2;
min = no1;
} else {
System.out.println("두 수는 같다");
}
System.out.println("큰 수 : " + max + ", 작은 수 :" + min + " 으로 두 수의 차 : " + (max-min));
}
}
숫자 두 개를 입력하세요
25 25
두 수는 같다
큰 수 : 0, 작은 수 :0 으로 두 수의 차 : 0
숫자 두 개를 입력하세요
87 55
큰 수 : 87, 작은 수 :55 으로 두 수의 차 : 32
숫자 두 개를 입력하세요
24 88
큰 수 : 88, 작은 수 :24 으로 두 수의 차 : 64
package com.day01;
import java.util.Scanner;
public class Exam05 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("숫자 두 개를 입력하세요");
int no1 = sc.nextInt();
int no2 = sc.nextInt();
int max=0;
int min=0;
if (no1 > no2) {
max = no1;
min = no2;
System.out.println("큰 수 : " + max + ", 작은 수 :" + min);
} else if (no1<no2) {
max = no2;
min = no1;
System.out.println("큰 수 : " + max + ", 작은 수 :" + min);
} else {
System.out.println("두 수는 같다");
}
System.out.println("두 수의 차 : " + (max-min));
}
}
숫자 두 개를 입력하세요
33 58
큰 수 : 58, 작은 수 :33
두 수의 차 : 25
숫자 두 개를 입력하세요
88 88
두 수는 같다
두 수의 차 : 0
숫자 두 개를 입력하세요
98 54
큰 수 : 98, 작은 수 :54
두 수의 차 : 44
선생님 답
package com.day01;
import java.util.Scanner;
public class Exam05 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("숫자 두 개를 입력하세요");
int max = sc.nextInt();
int min = sc.nextInt();
if (max < min) {
int tem = max;
max = min;
min = tem;
}
System.out.println("큰 수 : " + max + ", 작은 수 :" + min);
System.out.println("두 수의 차 : " + (max-min));
}
}
숫자 두 개를 입력하세요
88 99
큰 수 : 99, 작은 수 :88
두 수의 차 : 11
숫자 두 개를 입력하세요
54 88
큰 수 : 88, 작은 수 :54
두 수의 차 : 34
숫자 두 개를 입력하세요
20 20
큰 수 : 20, 작은 수 :20
두 수의 차 : 0
첫 번째 입력받은 값 max가 더 크면 그대로 계산하면 되고
두 번째 입력받은 값 min이 더 크면 if문으로 걸러서 임시 변수 int tem를 선언해 첫 번째 입력받은 값 max를
tem에 임시로 저장하고 max에는 두 번째로 입력받은 값인 min을 넣고 min에는 tem에 임시로 저장하고 있던, 첫 번째로 입력 받았던 값을 집어 넣어 두 개를 서로 바꿔주면 된다.
class 생성 시
public static void main(String[] args); 를 체크해주면 자동으로 써져서 나옴
Exam07
다음과 같이 출력되게 하라
1.자바 2.데이터베이스 3.안드로이드 4.기타
번호 선택 >>
1 자바공부 |
2 데이터베이스공부 |
3 안드로이드공부 |
4 기타공부 |
그 외 공부합시다 |
package com.day01;
import java.util.Scanner;
public class Exam07 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("1.자바 2.데이터베이스 3.안드로이드 4.기타");
System.out.println("번호 선택>>");
int no = sc.nextInt();
if (no==1) {
System.out.println("자바 공부");
} else if(no==2) {
System.out.println("데이터베이스 공부");
} else if(no==3) {
System.out.println("안드로이드 공부");
} else if(no==4) {
System.out.println("기타 공부");
} else {
System.out.println("공부합시다");
}
}
}
1.자바 2.데이터베이스 3.안드로이드 4.기타
번호 선택>>
1
자바 공부
1.자바 2.데이터베이스 3.안드로이드 4.기타
번호 선택>>
88
공부합시다
위의 예제를 switch문을 사용해서 표현하여라
package com.day01;
import java.util.Scanner;
public class Exam07 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("1.자바 2.데이터베이스 3.안드로이드 4.기타");
System.out.println("번호 선택>>");
int no = sc.nextInt();
switch(no) {
case 1 : System.out.println("자바 공부");
case 2 : System.out.println("데이터베이스 공부");
case 3 : System.out.println("안드로이드 공부");
case 4 : System.out.println("기타 공부");
default : System.out.println("공부합시다");
}
}
}
1.자바 2.데이터베이스 3.안드로이드 4.기타
번호 선택>>
3
안드로이드 공부
기타 공부
공부합시다
걸리는 지점부터 아래가 다 실행된다. 걸리는 지점까지만 실행되고 빠져나가려면 break;를 걸어주어야 함
package com.day01;
import java.util.Scanner;
public class Exam07 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("1.자바 2.데이터베이스 3.안드로이드 4.기타");
System.out.println("번호 선택>>");
int no = sc.nextInt();
switch(no) {
case 1 : System.out.println("자바 공부"); break;
case 2 : System.out.println("데이터베이스 공부"); break;
case 3 : System.out.println("안드로이드 공부"); break;
case 4 : System.out.println("기타 공부"); break;
default : System.out.println("공부합시다");
}
}
}
1.자바 2.데이터베이스 3.안드로이드 4.기타
번호 선택>>
3
안드로이드 공부
switch문은 다중 if문을 대신할 수 있다.
case1: 이렇게 하면 안되고
case 1: 이렇게 한 칸 띄워줘야 한다
Exam05를 switch문으로 변경하기
package com.day01;
import java.util.Scanner;
public class Exam05 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("학생의 이름을 입력하세요");
String name = sc.next();
System.out.println(name + "학생의 국어, 영어, 수학 점수를 입력하세요");
int kor = sc.nextInt();
int eng = sc.nextInt();
int mat = sc.nextInt();
int sum = kor + eng + mat;
float avg = sum/3;
String grade;
if (avg>=90) {
grade = "A학점";
} else if (avg>=80) {
grade = "B학점";
} else if (avg>=70) {
grade = "C학점";
} else {
grade = "F학점";
}
System.out.println(name + " 학생 평균 : " + avg + "으로 " + grade);
}
}
switch문으로 변경
package com.day01;
import java.util.Scanner;
public class Exam07 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("학생의 이름을 입력하세요");
String name = sc.next();
System.out.println(name + "학생의 국어, 영어, 수학 점수를 입력하세요");
int kor = sc.nextInt();
int eng = sc.nextInt();
int mat = sc.nextInt();
int sum = kor + eng + mat;
float avg = sum/3;
String grade;
switch((int)avg/10) { // float형이나 > < 이런게 올 수 없다
case 10 : // 어차피 아래로 내려가서 A학점이 되므로 그냥 둠
case 9 : grade = "A학점"; break;
case 8 : grade = "B학점"; break;
case 7 : grade = "C학점"; break;
default : grade = "F학점";
}
System.out.println(name + " 학생 평균 : " + avg + "으로 " + grade);
}
}
학생의 이름을 입력하세요
김길동
김길동학생의 국어, 영어, 수학 점수를 입력하세요
100 100 100
김길동 학생 평균 : 100.0으로 A학점
학생의 이름을 입력하세요
김로니
김로니학생의 국어, 영어, 수학 점수를 입력하세요
20 80 55
김로니 학생 평균 : 51.0으로 F학점
연산자
package com.day01;
public class Exam08 {
public static void main(String[] args) {
int n1 = 5;
System.out.println("n1 : " + n1);
}
}
n1 : 5
package com.day01;
public class Exam08 {
public static void main(String[] args) {
int n1 = 5;
System.out.println("n1 : " + n1);
int n2 = ++n1;
System.out.println("n2 : " + n2);
} // n1 : 5, n2 : 6이 출력될 것
}
n1 : 5
n2 : 6
실행하기 전 결과를 예상해보기
package com.day01;
public class Exam08 {
public static void main(String[] args) {
int n1 = 5;
System.out.println("n1 : " + n1);
int n2 = ++n1;
System.out.println("n2 : " + n2);
int n3 = n1++;
System.out.println("n3 : " + n3);
System.out.println("n1 : " + n1);
}
}
예상
n1 : 5
n2 : 6
n3 : 6
n3 : 7
정답
전위연산자, 후위 연산자
package com.day01;
public class Exam08 {
public static void main(String[] args) {
int num1 = 7;
int num2 = --num1;
int num3 = num1--;
System.out.println("num1 : " + num1);
System.out.println("num2 : " + num2);
System.out.println("num3 : " + num3);
}
}
결과 예측해보기
num1 : 5
num2 : 6
num3 : 6
정답
package com.day01;
public class Exam08 {
public static void main(String[] args) {
int a =50, b = 3;
int c;
a++;
++b;
c = a++ + ++b;
System.out.println("a : " + a);
System.out.println("b : " + b);
System.out.println("c : " + c);
}
}
a : 52
b : 5
c : 56
정답
package com.day01;
public class Exam08 {
public static void main(String[] args) {
int aa=10, bb=3;
int cc;
--aa;
bb++;
cc = aa-- + ++b;
System.out.println("aa : " + aa);
System.out.println("bb : " + bb);
System.out.println("cc : " + cc);
}
}
aa : 8
bb : 5
cc : 14
cc = --aa, ++aa -> 전위 연산자 -> 결과값을 대입
cc = aa--, bb++ -> 기존의 값을 먼저 대입한 뒤 값이 바뀜
Exam 09. 두 수와 연산자 하나를 입력 받아 계산을 수행하는 Switch문 만들기
package com.day01;
import java.util.Scanner;
public class Exam09 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("두 수와 연산자 하나를 입력하세요");
int a = sc.nextInt();
int b = sc.nextInt();
String p = sc.next();
switch(p) {
case "*" : System.out.println(a + "*" + b + "=" + a*b); break;
case "+" : System.out.println(a + "+" + b + "=" + (a+b)); break;
case "-" : System.out.println(a + "-" + b + "=" + (a-b)); break;
case "/" : System.out.println(a + "/" + b + "=" + a/b); break;
case "%" : System.out.println(a + "%" + b + "=" + a%b); break;
default : System.out.println("연산자 입력 오류");
}
}
}
두 수와 연산자 하나를 입력하세요
10 8 =
연산자 입력 오류
두 수와 연산자 하나를 입력하세요
8 9 *
8*9=72
Exam 10 자바 기본 데이터형 8가지 p.49
package com.day01;
public class Exam10 {
public static void main(String[] args) {
int a = 10; //정수 4바이트
long c = 10000000L; //정수 8바이트
float f = 0.15f; //실수 4바이트
double d = 0.456; //실수 8바이트
boolean b = true; //true, false
char ch = 'a'; // 문자 하나, 2byte ' ' (작은 따옴표)
//char t = "d"; // XX ""은 문자열에 사용해야 함
char ch1 = 'A';
byte bb; // bb는 1byte의 크기를 가질 수 있다.
short sh; // sh는 2byte의 크기를 가질 수 있다.
//---------------------------------------------
}
}
package com.day01;
public class Exam10 {
public static void main(String[] args) {
String str="";
int aa=10;
if(aa==10) {
str = "10이다";
} else {
str = "10이 아니다";
}
System.out.println(str);
}
}
이렇게 표현해도 되고 삼항연산자로 표현해도 된다
package com.day01;
public class Exam10 {
public static void main(String[] args) {
String str="";
int aa=10;
str = (aa==10) ? "10이다" : "10이 아니다";
System.out.println(str);
}
}
삼항 연산자 표현
str = (조건) ? "참" : "거짓" ;
조건이 참일 때 str에 "참"에 해당하는 내용이 할당되고, 거짓이면 "거짓"에 해당하는 내용이 할당됨
Exam11. 1~99 사이의 정수 하나를 입력받아 십 단위 3, 6, 9 검사, 일 단위 3, 6, 9 검사
-> 3, 6, 9가 2개이면 박수 짝짝
-> 3, 6, 9가 1개이면 박수 짝
-> 없으면 박수 없음 출력
ex) 36 -> 박수 짝짝
ex) 46 -> 박수 짝
ex) 52 -> 박수 없음
'프로그래밍 > 자바(JAVA)' 카테고리의 다른 글
[복습] 4일차 복습 - 22일차2 ~ 23일차 복습(클래스, 객체) 진행 중 (0) | 2021.01.16 |
---|---|
[복습] 3일차 복습 - 자바 기본(21일차 배열, 난수) (0) | 2021.01.15 |
[복습] 2일차 복습 - 자바 기본(for, while, do ~ while, 이중 for문) (0) | 2021.01.15 |
[자바 기초] 이지스퍼블리싱 Do it! 공부단 신청 (0) | 2021.01.13 |
[자바 기초] 개인 복습 - HTML 태그 기본 (0) | 2021.01.06 |