프로그래밍/자바(java) 융합개발자 2차

[자바 1일차] 20일차 일지 - Eclipse에서 Hello 출력, 변수, if문

aSpring 2021. 1. 12. 16:31
728x90
728x90

2021/01/11 - [공부/자바(java) 융합개발자 2차] - [자바 기초] 19일차 일지 - 8장. 반응형 웹 디자인하기 2

 

Do it! 자바 프로그래밍 입문
국내도서
저자 : 박은종
출판 : 이지스퍼블리싱 2018.08.06
상세보기

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

728x90
728x90