2021/01/11 - [공부/자바(java) 융합개발자 2차] - [자바 기초] 19일차 일지 - 8장. 반응형 웹 디자인하기 2
|
2021/01/13 - [공부/자바 복습] - [1일차] 복습 & 자바 기본 익히기(p.18~)
자바가 설치되어 있으면
C드라이브 > Program Files > Java > jdk(자신이 설치한 버전이 보일 것)
자바가 설치되어 있지 않다면 설치하기!
eclipse가 실행 된다면 자바가 설치가 되어있다는 것
자바 : 패키지 단위로 이뤄진다.
New : JavaProject -> 이름 :JavaProject > 버전 알아서 선택 됨
src > New > Package 이름 : com.day01
com.day01 > New > Class 이름 : Exam01
자바 : 대소문자 구분
한 문장이 끝나면 반드시 ';'을 찍어줘야 함
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");
}
}
Exam01.java > Ruc As > Java application 하면 Hello가 출력 된다.
??
Ctrl + S눌러서 다시 Run As > Java application을 하니까 Hello 가 출력됐다.
src > com.day01 > Exam01.java 이 이름과
Public class Exam01 과 같아야 된다(대소문자 구별)
이름은 'Refactor'에서 수정할 수 있다
Eclipse를 쓰는 이유? 코드 작성을 편하게 해주기 때문
메모장에 작성을 해도 되지만 일일히 다 맞춰줘야하기 때문에 불편 -> 그래서 Eclipse를 쓴다
println에서 ln은 개행( HTML에서의 <br> 역할 )
package com.day01;
public class Exam01 {
public static void main(String[] args) {
System.out.println("Hello");
System.out.print("자바 공부");
System.out.print("자바 공부");
}
}
이렇게 ln을 빼고 써주면
Hello
자바 공부자바 공부
이렇게 줄바꿈(개행)이 되지 않고 출력이된다.
자바의 주석
// 자바 한 줄 주석
/*
자바 여러 줄 주석
*/
자바는 변수의 유형을 명확하게 정의해주어야 한다.
package com.day01;
public class Exam01 {
public static void main(String[] args) {
System.out.println("Hello");
System.out.print("자바 공부");
System.out.println("자바 공부");
int age = 20; //age라는 변수에 20을 저장
System.out.println(age);
}
}
Hello
자바 공부자바 공부
20
package com.day01;
public class Exam01 {
public static void main(String[] args) {
System.out.println("Hello");
System.out.print("자바 공부");
System.out.println("자바 공부");
int age = 20; //age라는 변수에 20을 저장
System.out.println("age");
}
}
Hello
자바 공부자바 공부
age
-> System.out.println(변수)
변수를 넣어주면 변수에 저장된 값을 출력해주고
System.out.println("변수")
이렇게 입력해주면 " " 안에 적어준 문자 그대로가 출력된다
정수형 변수 선언
int : 정수형
String : 문자형
한 번도 쓴 적이 없는 변수라서 경고 뜨는 것
package com.day01;
public class Exam01 {
public static void main(String[] args) {
System.out.println("Hello");
System.out.print("자바 공부");
System.out.println("자바 공부");
int age = 20; //age라는 변수에 20을 저장
System.out.println("age");
String addr="부산";
System.out.println(addr);
}
}
Hello
자바 공부자바 공부
age
부산
package com.day01;
public class Exam01 {
public static void main(String[] args) {
System.out.println("Hello");
System.out.print("자바 공부");
System.out.println("자바 공부");
int age = 20; //age라는 변수에 20을 저장
System.out.println("age");
String addr="부산";
System.out.println(addr);
//나이 : 20
//주소 : 부산 이렇게 출력하고 싶으면
System.out.println("나이 : " + age);
System.out.println("주소 : " + addr);
}
}
Hello
자바 공부자바 공부
age
부산
나이 : 20
주소 : 부산
"내가 출력하고 싶은 문자열"과 변수의 연결은 +로 하면 된다.
System.out.prnitln("출력하고싶은문장" + 변수명);
이름 변수를 name으로 선언하고 홍길동을 할당
package com.day01;
public class Exam01 {
public static void main(String[] args) {
//이름 변수를 name으로 선언하고 홍길동을 할당
String name = "홍길동";
// 이름 : 홍길동 형태로 출력
System.out.println("이름 : " + name);
}
}
이름 : 홍길동
변수에는 홍길동 이라는 문자를 넣을 거니까 String으로 선언
String name ="홍길동";
System.out.println("이름 :" + name);
변수 a에 15 할당, 변수 b에 8을 할당 -> 두 수의 합을 출력
package com.day01;
public class Exam01 {
public static void main(String[] args) {
//변수 a에 15를 할당
//변수 b에 8을 할당
// 두 수의 합을 출력
int a = 15;
int b = 8;
System.out.println(a+b);
}
}
23
int a = 15;
int b = 8;
System.out.println("합계 : " + a+b);
합계 : 158
여기서 (문자 + 숫자) 가 되므로 +를 문자로 취급한다.
int a = 15;
int b = 8;
System.out.println("합계 : " + (a+b));
이렇게 (a+b)를 숫자 끼리 더할 수 있도록 괄호를 넣어줘야
값이
합계 : 23으로 나온다.
System.out.println("a-b :"+(a-b));
System.out.println("a*b :"+ a*b );
System.out.println("a*b :"+ a/b ); // 15 나누기 8 은 1.XX로 실수인데 Int가 정수형이므로 1만 출력됨
*와 /의 경우 +보다 우선적으로 계산되므로 ()해줄 필요 없다.
System.out.println("a%b : " + a%b);
a%b : 7
%는 나머지를 출력한다.
반지름 r을 5로 지정하고
원의 넓이를 출력하시오
원의 넓이 = 반지름 * 반지름 * 원주율
원주율 : 3.14
int r = 5;
System.out.println("원의 넓이 : " + r*r*3.14);
원의 넓이 : 78.5
부동소수점인 3.14가 더 크기 때문에 자동으로 실수형으로 나온다.
int r = 5;
int pi = 3.14;
System.out.println("원의 넓이 : " + r*r*pi);
int는 정수인데 3.14인 실수를 넣었으므로 에러가 남
int r = 5;
double pi = 3.14;
System.out.println("원의 넓이 : " + r*r*pi);
그러므로 pi는 double형으로 선언해주어야 함
결과 = > 원의 넓이 : 78.5 가 출력됨
int r = 5;
final double PI = 3.14;
System.out.println("원의 넓이 : " + r*r*PI);
결과는 똑같으나
pi값 처럼 변하지 않는 값은 앞에 final을 넣어주고 변수명은 PI처럼 대문자로 잡아준다.
컴퓨터 입장에서는
5라는 수는 00000000000000000000000000000101 이다.
따라서
int(정수) : 4바이트(1바이트 -> 8비트)
double(실수) : 8바이트 -> 그러나 실수를 잡을 때 너무 크게 잡을 필요 없을 때 : 따로 말이 없을 때 실수의 기본
float(실수) : 4바이트 -> 같은 실수이지만 작은 float을 쓴다
int r = 5;
//final double PI = 3.14;
final float PI = 3.14;
System.out.println("원의 넓이 : " + r*r*PI);
그러나 에러가 난다.
int r = 5;
//final double PI = 3.14;
final float PI = 3.14f;
System.out.println("원의 넓이 : " + r*r*PI);
f를 붙여서 float이란 것을 나타내주자.
그러면 원의 넓이 : 78.5 라는 결과가 정상적으로 출력된다.
float형 f변수에 5 할당
float f = 5;
System.out.println(f);
출력 : 5.0
float f = 5f;
System.out.println(f);
뒤에 f를 붙여줘도 같은 결과값이 출력된다.
float f = 5.0;
System.out.println(f);
이렇게 하면 오류남
float f = 5.0;
System.out.println(f);
은 오류가 남
실수를 써줄 때 f를 붙여줘야 하는 듯
float f = 5.0f;
System.out.println(f);
float f = 5f;
int num=10;
f=num; // float=int, num=int; (유형이 다른데 오류 안남: 둘 다 4바이트인데 실수>정수로 실수를 더 큰 범위로 본다. 더 큰 범위에는 집어넣을 수 있다.)
num=f; // 이건 오류가 남 -> 정수에 실수를 넣는다? X 정수가 더 작은 범위여서 에러남
float f = 5f;
int num=10;
f=num; // float=int, num=int; (유형이 다른데 오류 안남: 둘 다 4바이트인데 실수>정수로 실수를 더 큰 범위로 본다. 더 큰 범위에는 집어넣을 수 있다.)
// num=f; // 이건 오류가 남 -> 정수에 실수를 넣는다? X 정수가 더 작은 범위여서 에러남
System.out.print("f : " + f);
f : 10.0
자동 형 변환이 됨!
f=num; // float = int (정수 > 실수) ==> 형 변환(자동 형변환)
float f = 5f;
int num=10;
f=num; // 이건 오류가 남 -> 정수에 실수를 넣는다? X 정수가 더 작은 범위여서 에러남
System.out.print("f : " + f);
num=(int)f; //정수 <- 실수 :: 명시적 형변환
명시적 형 변환
f : 10.0
Exam02
package com.day01;
public class Exam02 {
public static void main(String[] args) {
//a 변수에 49할당
int a = 49;
// a가 50보다 큰가?
// 크면 50보다 크다, 작으면 50보다 작다 이렇게 출력하고싶다?
// a와 50을 비교해야 한다
// -> 프로그래밍 언어에서는 조건문이라고 하고 true / false로 나온다
if( a > 50 ) {
System.out.println("50보다 크다"); // true일 때
} else { // false 조건
System.out.println("50보다 작다");
}
}
}
50보다 작다
// a가 짝수인지 홀수인지 출력
if (a % 2 == 0) {
System.out.println("짝수");
} else {
System.out.println("홀수");
}
= 은 할당의 의미이므로
같다의 의미로 쓰고 싶다면 == 로 써야 한다.
a = 51; // 50 100 200
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");
}
다중 if문
System.out.println();
이렇게만 넣으면 개행만 됨
System.out.println();
a = 202; // 50 100 200
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;
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보다 크다
2000보다 크다
System.out.println();
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보다 크다
if ( a > 50 && a < 100 )
&& : and
a가 50보다 크고 100보다 작은지?
Exam03 입력한 수가 짝수인지 홀수인지를 출력하세요.
package com.day01;
public class Exam03 {
public static void main(String[] args) {
//입력한 수가 짝수인지 홀수인지를 출력하세요
Scanner sc = new Scanner(System.in);
}
}
이렇게 하면 오류가 난다
Scanner라는 게 import되어있지 않아서 저걸 눌러서 import 시켜주어야 한다.
package com.day01;
import java.util.Scanner;
public class Exam03 {
public static void main(String[] args) {
//입력한 수가 짝수인지 홀수인지를 출력하세요
Scanner sc = new Scanner(System.in);
}
}
그럼 import됨
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 num = sc.nextInt(); //정수를 받아오는 함수
System.out.println(num); //입력받은 정수 출력
}
}
입력하고 엔터
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 num = sc.nextInt(); //정수를 받아오는 함수
if(num%2 == 0) {
System.out.println(num + "은 짝수입니다.");
} else {
System.out.println(num + "은 홀수입니다.");
}
}
}
31은 내가 입력한 숫자.
만약 Console이 보이지 않으면 Window > Show View > Console 클릭
int num = 변수명.nextInt();
ㄴ> 정수만을 받아온다! 정수가 아닌 것을 입력하면 오류가 난다.
package com.day01;
import java.util.Scanner;
public class Exam03 {
public static void main(String[] args) {
System.out.println("이름을 입력하세요>>");
String name = sc.next();
System.out.println(" 이름 : " + name );
//나이를 입력받아 나이가 20 이상이면 입장 가능
// 15세 이상 20세 미만이면 부모님과 동반입장
// 15세 미만이면 입장 불가능
System.out.println("나이를 입력하세요>>");
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 + "세 입장 불가능");
}
}
}
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 );
//나이를 입력받아 나이가 20 이상이면 입장 가능
// 15세 이상 20세 미만이면 부모님과 동반입장
// 15세 미만이면 입장 불가능
System.out.println("나이를 입력하세요>>");
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 + "세 입장 불가능");
}
sc.close(); //sc 닫아줌. 그 이후로는 쓸 수 없음
}
}
이렇게 되면
두 줄 출력됨
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 );
//나이를 입력받아 나이가 20 이상이면 입장 가능
// 15세 이상 20세 미만이면 부모님과 동반입장
// 15세 미만이면 입장 불가능
System.out.println("나이를 입력하세요>>");
int age = sc.nextInt();
if(age >= 20) {
System.out.println(name + "씨 나이 :" + age + "세 입장 가능");
} if(age >= 15 && age < 20) {
System.out.println(name + "씨 나이 :" + age + "세 부모님 동반입장");
} else {
System.out.println(name + "씨 나이 :" + age + "세 입장 불가능");
}
sc.close(); //sc 닫아줌. 그 이후로는 쓸 수 없음
}
}
써줘야 함.
그러나 else if(age >= 15)로 써주는 것이 가장 깔끔함
Exam04
package com.day01;
import java.util.Scanner;
public class Exam04 {
public static void main(String[] args) {
/* 1. 점수를 입력받고 50 60
* 2. 커트라인을 입력받아 60 55
* 3. 합격인지 불합격인지 알려주세요.
*/
Scanner sc = new Scanner(System.in);
System.out.println("점수를 입력하세요 >>");
int score = sc.nextInt();
System.out.println("커트라인을 입력하세요 >>");
int cutline = sc.nextInt();
if( score >= cutline ) {
System.out.println(score + "점으로 합격입니다.");
} else {
System.out.println(score + "점으로 불합격입니다.");
}
}
}
package com.day01;
import java.util.Scanner;
public class Exam04 {
public static void main(String[] args) {
/* 1. 점수를 입력받고 50 60
* 2. 커트라인을 입력받아 60 55
* 3. 합격인지 불합격인지 알려주세요.
*/
Scanner scan = new Scanner(System.in);
System.out.println("점수를 입력하세요 >>");
int score = scan.nextInt();
System.out.println("커트라인을 입력하세요 >>");
int cutline = scan.nextInt();
if( score >= cutline ) {
System.out.println(score + "점으로 합격입니다.");
} else {
System.out.println("귀하의 점수는 " + score + "점으로 " + cutline + "점 미만이므로 불합격입니다.");
}
}
}
점수, 커트라인 같이 입력받기
package com.day01;
import java.util.Scanner;
public class Exam04 {
public static void main(String[] args) {
/* 1. 점수를 입력받고 50 60
* 2. 커트라인을 입력받아 60 55
* 3. 합격인지 불합격인지 알려주세요.
*/
Scanner sc = new Scanner(System.in);
System.out.println("점수와 커트라인을 입력하세요 >>");
int score = sc.nextInt();
int cutline = sc.nextInt();
if( score >= cutline ) {
System.out.println(score + "점으로 합격입니다.");
} else {
System.out.println("귀하의 점수는 " + score + "점으로 " + cutline + "점 미만이므로 불합격입니다.");
}
}
}
점수가 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의 배수가 아닙니다.");
}
}
}
점수가 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의 배수가 아닙니다.");
}
} // main을 담음
} //class를 담음
Sys까지 치고 Ctrl + SpaceBar를 치면
자동으로 나옴
Exam05 : 이름, 국어, 영어, 수학 점수를 입력받아 학생의 총점과 평균을 출력하기
package com.day01;
import java.util.Scanner;
public class Exam05 {
public static void main(String[] args) {
/*
* 이름, 국어, 영어, 수학 점수를 입력받아
* 학생의 총점과 평균을 출력하기
*/
Scanner test = new Scanner(System.in);
System.out.println("이름을 입력하세요");
String name = test.next();
System.out.println(name + " 학생의 국어, 영어, 수학 점수를 차례대로 입력하세요.");
int KoSc = test.nextInt();
int EnSc = test.nextInt();
int MaSc = test.nextInt();
System.out.println(name + "학생의 총점은 " + (KoSc+EnSc+MaSc) + "점이고 평균은 " + (KoSc+EnSc+MaSc)/3 +"점 입니다." );
}
}
package com.day01;
import java.util.Scanner;
public class Exam05 {
public static void main(String[] args) {
/*
* 이름, 국어, 영어, 수학 점수를 입력받아
* 학생의 총점과 평균을 출력하기
*/
Scanner test = new Scanner(System.in);
System.out.println("이름을 입력하세요");
String name = test.next();
System.out.println(name + " 학생의 국어, 영어, 수학 점수를 차례대로 입력하세요.");
int KoSc = test.nextInt();
int EnSc = test.nextInt();
int MaSc = test.nextInt();
int Total = KoSc + EnSc + MaSc;
float Avg = Total/3;
System.out.println(name + "학생의 총점은 " + Total + "점이고 평균은 " + Avg +"점 입니다." );
}
}
평균은 나눠주면 실수가 나올 수 있으므로 float으로 선언
평균 90점 이상이면 A 학점, 80점 이상이면 B 학점, 70점 이상이면 C 학점, 나머지 F 학점
package com.day01;
import java.util.Scanner;
public class Exam05 {
public static void main(String[] args) {
Scanner test = new Scanner(System.in);
System.out.println("이름을 입력하세요");
String name = test.next();
System.out.println(name + " 학생의 국어, 영어, 수학 점수를 차례대로 입력하세요.");
int KoSc = test.nextInt();
int EnSc = test.nextInt();
int MaSc = test.nextInt();
int Total = KoSc + EnSc + MaSc;
float Avg = Total/3;
if ( Avg >= 90 ) {
System.out.println(name + " : A학점");
} else if ( Avg >= 80 ) {
System.out.println(name + " : B학점");
} else if ( Avg >= 70 ) {
System.out.println(name + " : C학점");
} else {
System.out.println(name + " : F학점");
}
}
}
package com.day01;
import java.util.Scanner;
public class Exam05 {
public static void main(String[] args) {
Scanner test = new Scanner(System.in);
System.out.println("이름을 입력하세요");
String name = test.next();
System.out.println(name + " 학생의 국어, 영어, 수학 점수를 차례대로 입력하세요.");
int KoSc = test.nextInt();
int EnSc = test.nextInt();
int MaSc = test.nextInt();
int Total = KoSc + EnSc + MaSc;
float Avg = Total/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 + " : " + grade);
}
}
Exam06.java 두 수를 입력받아 큰 수가 얼마이고, 작은 수가 얼마이며, 두수의 차이를 나타내시오
package com.day01;
import java.util.Scanner;
public class Exam06 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("두 수를 입력하세요 >>");
int no1 = sc.nextInt();
int no2 = sc.nextInt();
int big;
int small;
if (no1 > no2) {
big = no1;
small = no2;
} else if ( no2 > no1 ){
big = no2;
small = no1;
} else {
big = small = no1 = no2;
System.out.println("두 수의 차이는 0입니다.");
}
int gab = big - small;
System.out.println("큰 수 " + big + "과 작은 수 " + small + "의 차 : " + gab);
}
}
package com.day01;
import java.util.Scanner;
public class Exam06 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("두 수를 입력하세요 >>");
int no1 = sc.nextInt();
int no2 = sc.nextInt();
int big;
int small;
if (no1 > no2) {
big = no1;
small = no2;
System.out.println("큰 수 : " + big + ", 작은 수 : " + small);
} else if ( no2 > no1 ){
big = no2;
small = no1;
System.out.println("큰 수 : " + big + ", 작은 수 : " + small);
} else {
big = small = no1 = no2;
System.out.println("두 수는 " + big + "으로 동일합니다.");
}
int gab = big - small;
System.out.println("두 수의 차 : " + gab);
}
}
선생님 답
package com.day01;
import java.util.Scanner;
public class Exam06 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("첫번째 수 입력 >>");
int max=sc.nextInt();
System.out.println("두번째 수 입력 >>");
int min = sc.nextInt();
if(max < min) { //max값, min값 서로 바꿔줘야 함
int tmp = max; // 임시로 max값을 보관할 변수 필요
max = min;
min = tmp;
}
System.out.println("큰 수 : " + max);
System.out.println("작은 수 : " + min);
System.out.println("차이 : " + (max-min));
}
}
이렇게 하면 훨씬 간단하게 풀 수 있음
교환할 때는 임시로 변수 하나를 지정해서 거기에 값을 담아놓아야 함
Exam07 다중 if문을 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 subject = sc.nextInt();
if(subject == 1) { //다중 if문
System.out.println("자바공부");
} else if(subject == 2) {
System.out.println("데이터베이스공부");
} else if(subject == 3) {
System.out.println("안드로이드공부");
} else if(subject == 4) {
System.out.println("기타공부");
} else {
System.out.println("공부합시다");
}
}
}
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 subject = sc.nextInt();
//switch
switch(subject) {
case 1 : System.out.println("자바공부");
case 2 : System.out.println("데이터베이스공부");
case 3 : System.out.println("안드로이드");
case 4 : System.out.println("기타공부");
default : System.out.println("공부합시다");
}
}
}
else 는 default에 적어줌
그러나 이렇게 다 나온다. 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 subject = sc.nextInt();
//switch
switch(subject) {
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("공부합시다"); break;
}
}
}
switch문은 다중 if문을 대신할 수 있다.
case1: 이렇게 하면 안되고
case 1: 이렇게 한 칸 띄워줘야 한다
Exam05를 switch문으로 변경하기
switch는 범위는 쓸 수 없다, switch(Avg/10) 을 넣고싶은데 Avg가 float형이라서 에러가 남 -> (int)Avg 로 강제로 정수형으로 만들어 줌
package com.day01;
import java.util.Scanner;
public class Exam05 {
public static void main(String[] args) {
Scanner test = new Scanner(System.in);
System.out.println("이름을 입력하세요");
String name = test.next();
System.out.println(name + " 학생의 국어, 영어, 수학 점수를 차례대로 입력하세요.");
int KoSc = test.nextInt();
int EnSc = test.nextInt();
int MaSc = test.nextInt();
int Total = KoSc + EnSc + MaSc;
float Avg = Total/3;
String grade = "";
switch((int)Avg/10) { //Avg가 float형이라 강제로 int형으로 바꿈
case 10 : // 10 이면 내려가서 "A"가 되고 break가 걸리니까 그냥 둠
case 9 : grade="A"; break;
case 8 : grade="B"; break;
case 7 : grade="C"; break;
default : grade="F"; // 어차피 끝이므로 break; 안걸어줘도 됨
}
System.out.println("총점 : " + Total);
System.out.println("평균 : " + Avg);
System.out.println(name + " : " + grade);
}
}
연산자
Exam 08
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
package com.day01;
public class Exam08 {
public static void main(String[] args) {
int n1 = 5;
System.out.println("n1 : " + n1); //5
int n2 = ++n1;
System.out.println("n2 : " + n2); //6
int n3 = n1++;
System.out.println("n3 : " + n3); //n3 : 6 넣고
System.out.println("n1 : " + n1); //n1 : 7이 됨
}
}
n1 : 5
n2 : 6
n3 : 6
n1 : 7
전위 연산자
후위 연산자
package com.day01;
public class Exam08 {
public static void main(String[] args) {
int n1 = 5;
System.out.println("n1 : " + n1); //5
int n2 = ++n1;
System.out.println("n2 : " + n2); //6
int n3 = n1++;
System.out.println("n3 : " + n3); //n3 : 6 넣고
System.out.println("n1 : " + n1); //n1 : 7이 됨
System.out.println("===========================");
int num1 = 7;
int num2 = --num1; // num1 = 6 num2 = 6
int num3 = num1--; // num3 = 6 num1 = 5
System.out.println("num1 : " + num1); // 5
System.out.println("num2 : " + num2); // 6
System.out.println("num3 : " + num3); // 6
}
}
n1 : 5
n2 : 6
n3 : 6
n1 : 7
===========================
num1 : 5
num2 : 6
num3 : 6
package com.day01;
public class Exam08 {
public static void main(String[] args) {
int n1 = 5;
System.out.println("n1 : " + n1); //5
int n2 = ++n1;
System.out.println("n2 : " + n2); //6
int n3 = n1++;
System.out.println("n3 : " + n3); //n3 : 6 넣고
System.out.println("n1 : " + n1); //n1 : 7이 됨
System.out.println("===========================");
int num1 = 7;
int num2 = --num1; // num1 = 6 num2 = 6
int num3 = num1--; // num3 = 6 num1 = 5
System.out.println("num1 : " + num1); // 5
System.out.println("num2 : " + num2); // 6
System.out.println("num3 : " + num3); // 6
System.out.println("===========================");
int a = 50, b = 3;
int c;
a++; // a 51
++b; // b 4
c = a++ + ++b; // 51 + 5 = c = 56, a 52
System.out.println("a : " + a); // 52
System.out.println("b : " + b); // 5
System.out.println("c : " + c); // 56
}
}
n1 : 5
n2 : 6
n3 : 6
n1 : 7
===========================
num1 : 5
num2 : 6
num3 : 6
===========================
a : 52
b : 5
c : 56
package com.day01;
public class Exam08 {
public static void main(String[] args) {
int n1 = 5;
System.out.println("n1 : " + n1); //5
int n2 = ++n1;
System.out.println("n2 : " + n2); //6
int n3 = n1++;
System.out.println("n3 : " + n3); //n3 : 6 넣고
System.out.println("n1 : " + n1); //n1 : 7이 됨
System.out.println("===========================");
int num1 = 7;
int num2 = --num1; // num1 = 6 num2 = 6
int num3 = num1--; // num3 = 6 num1 = 5
System.out.println("num1 : " + num1); // 5
System.out.println("num2 : " + num2); // 6
System.out.println("num3 : " + num3); // 6
System.out.println("===========================");
int a = 50, b = 3;
int c;
a++; // a 51
++b; // b 4
c = a++ + ++b; // 51 + 5 = c = 56, a 52
System.out.println("a : " + a); // 52
System.out.println("b : " + b); // 5
System.out.println("c : " + c); // 56
System.out.println("===========================");
int aa=10, bb=3;
int cc;
--aa; // 9
bb++; // 4
cc = aa-- + ++bb; // aa 9 + bb 5 = cc = 14 ==> aa 8
System.out.println("aa : " + aa); // 8
System.out.println("bb : " + bb); // 5
System.out.println("cc : " + cc); // 14
}
}
n1 : 5
n2 : 6
n3 : 6
n1 : 7
===========================
num1 : 5
num2 : 6
num3 : 6
===========================
a : 52
b : 5
c : 56
===========================
aa : 8
bb : 5
cc : 14
cc = --aa, ++a : 전위 연산자 -> 결과값을 구한 뒤 cc에 대입
cc = bb++, bb-- : 후위 연산자 -> 원래값 먼저 cc에 대입하고난 후 계산
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 no1 = sc.nextInt();
int no2 = sc.nextInt();
String op = sc.next();
switch(op) {
case "+" : System.out.println("연산 결과 : " + no1 + no2); break;
case "-" : System.out.println("연산 결과 : " + (no1 - no2)); break;
case "*" : System.out.println("연산 결과 : " + no1 * no2); break;
case "/" : System.out.println("연산 결과 : " + no1 / no2); break;
case "%" : System.out.println("연산 결과 : " + no1 % no2); break;
default : System.out.println("연산자 입력 오류");
}
}
}
두 수와 연산자를 입력하세요 10 8 = 연산자 입력 오류 |
두 수와 연산자를 입력하세요 8 9 - 연산 결과 : -1 |
두 수와 연산자를 입력하세요 9 5 * 연산 결과 : 45 |
Exam 10 자바 기본 데이터형 8가지 p.49
package com.day01;
public class Exam10 {
public static void main(String[] args) {
//자바 기본데이터형 8가지
int a=10; //정수 4바이트
long c = 1000000000000L; //정수 8바이트
float f; //실수 4바이트
double d; //실수 8바이트
boolean b = true; // true, false
char ch = 'a'; //문자 하나, 2byte ' '(작은 따옴표)
// char ch1="A"; " " 큰 따옴표 쓰면 안됨, ""은 문자열에 사용
char ch1 = 'A';
byte bb; // 1byte의 크기를 가질 수 있다
short sh; // 2byte
//-----------------------------------------------
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) {
//자바 기본데이터형 8가지
int a=10; //정수 4바이트
long c = 1000000000000L; //정수 8바이트
float f; //실수 4바이트
double d; //실수 8바이트
boolean b = true; // true, false
char ch = 'a'; //문자 하나, 2byte ' '(작은 따옴표)
// char ch1="A"; " " 큰 따옴표 쓰면 안됨, ""은 문자열에 사용
char ch1 = 'A';
byte bb; // 1byte의 크기를 가질 수 있다
short sh; // 2byte
//-----------------------------------------------
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 -> 박수 없음
내 풀이
package com.day01;
import java.util.Scanner;
public class Exam11 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("1~99 사이의 숫자를 입력하세요");
int a = sc.nextInt();
String str = "";
switch(a/10) {
case 3 : str = str + "짝"; break;
case 6 : str = str + "짝"; break;
case 9 : str = str + "짝";
}
switch(a%10) {
case 3 : str = str + "짝"; break;
case 6 : str = str + "짝"; break;
case 9 : str = str + "짝";
}
if (str=="") {
System.out.println("박수 없음");
} else {
System.out.println("박수 " + str);
}
}
}
또는
package com.day01;
import java.util.Scanner;
public class Exam11 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("1~99 사이의 숫자를 입력하세요");
int a = sc.nextInt();
String str = "";
if (a/10 == 3 || a/10 == 6 || a/10 == 9 ) {
str = str + "짝";
}
if (a%10 == 3 || a%10 == 6 || a%10 == 9) {
str = str + "짝";
}
if (str=="" ) {
str = "없음";
}
System.out.println("박수 " + str);
}
}
선생님 풀이
package com.day01;
import java.util.Scanner;
public class Exam11 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("1~99 사이의 숫자를 입력하세요");
int su = sc.nextInt();
int a = su/10; //10단위
int b = su%10; //1단위
int cnt = 0; // 3, 6, 9의 개수를 넣을 것
if( a/3 == 0 ) { //10단위
cnt++;
}
if( b/3 == 0 ) { //1단위
cnt++;
}
if(cnt==2) {
System.out.println("박수짝짝");
} else if(cnt==1) {
System.out.println("박수짝");
} else {
System.out.println("박수없음");
}
}
-> 30 이런거 넣으면 나머지 0이라서 박수짝짝이 나옴.. 따라서 0은 제외시켜줘야 한다.
3으로 나누어 떨어지고 0이 아니어야 한다.는 조건이 들어가줘야 함.
package com.day01;
import java.util.Scanner;
public class Exam11 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("1~99 사이의 숫자를 입력하세요");
int su = sc.nextInt();
int a = su/10; //10단위
int b = su%10; //1단위
int cnt = 0; // 3, 6, 9의 개수를 넣을 것
if( a/3 == 0 && a != 0 ) { //10단위
cnt++;
}
if( b/3 == 0 && b != 0 ) { //1단위
cnt++;
}
if(cnt==2) {
System.out.println("박수짝짝");
} else if(cnt==1) {
System.out.println("박수짝");
} else {
System.out.println("박수없음");
}
}
a/3 == 0 && a != 0
a/3이 0이면서, a자체가 0이 아닌 경우만 참
cnt++; // cnt = cnt + 1
cnt++; // cnt ++ 1;
같다.
복습할 내용 : if, switch
예습할 내용 : 반복문, for
'프로그래밍 > 자바(java) 융합개발자 2차' 카테고리의 다른 글
[자바 3일차] 22일차 - 배열, 난수 (0) | 2021.01.14 |
---|---|
[자바 2일차] 21일차 - 반복문(for, while, do ~ while) (0) | 2021.01.13 |
[자바 기초] 19일차 일지 - 8장. 반응형 웹 디자인하기 2 (0) | 2021.01.11 |
[자바 기초] 18일차 일지 3 - 8장. 반응형 웹 디자인하기 (0) | 2021.01.08 |
[자바 기초] 18일차 일지 2 - Ch9. 자바스크립트 기본 문법 (0) | 2021.01.08 |