728x90
반응형
간단한 계산, 삼항연산자, 윤년구하기
package com.day2;
class Test1 {
public static void main(String[] args) throws IOException {
//선언
BufferedReader br = new BufferedReader (
new InputStreamReader (System.in));
//String a,b;
int num1, num2;
//입력
System.out.print("첫번째 수?"); //50
//a = br.readLine();
//num1 = Integer.parseInt(a);
num1 = Integer.parseInt(br.readLine());
//num1 = Double.parseDouble(br.readLine()); - 에러남. 선언한 자료형이 Double이 아니기 때문.
System.out.print("두번째 수?"); //30
num2 = Integer.parseInt(br.readLine());
//연산
//int num3 = num1 + num2;
//출력+연산
System.out.printf("%d+%d=%d\t", num1, num2, (num1+num2)); //\t : tab 일정값 띄어짐.!!
System.out.printf("%d-%d=%d\n", num1, num2, (num1-num2));
System.out.printf("%d*%d=%d\t", num1, num2, (num1*num2));
System.out.printf("%d/%d=%d\n", num1, num2, (num1/num2)); //나누기는 몫만 가져옴.
System.out.printf("%d%%%d=%d\n", num1, num2, (num1%num2)); //% : 나누기 나머지 값 가져옴.
System.out.println("----------------------------");
//숫자를 부등호로 비교하면 true, false 문자가 생성.
System.out.println("num1>num2 : " + (num1 > num2));
String str;
//삼항연산자
str = num1%2 == 0?"짝수" : "홀수";
// num1%2 == 0? : 1항, "짝수" :2항, "홀수" : 3항.
str = num1>0?"양수":(num1<0?"음수":"영");
//&& : A and B
//|| : A or B
//!= : 같지 않다.
str = num1%4==0 && num1%100!=0 || num1%400==0?"윤년" : "평년"; // 윤년 구하기 공식
System.out.println(num1 + ":" + str);
}
}
http://colorscripter.com/info#e" target="_blank" style="color:#4f4f4f; text-decoration:none">Colored by Color Scripter
|
* 실행 결과
첫번째 수?10 두번째 수?2 10+2=12 10-2=8 10*2=20 10/2=5 10%2=0 ---------------------------- num1>num2 : true 10:평년 |
밑변(width)과 높이(height)를 입력받아 삼각형의 면적(area)을 구하기.
package com.day2;
class Test2 {
public static void main(String[] args) throws IOException {
//선언
BufferedReader br = new BufferedReader (
new InputStreamReader(System.in));
int width;
int height;
double area;
//입력
System.out.print("밑변 ? ");
width = Integer.parseInt(br.readLine());
System.out.print("높이 ? ");
height = Integer.parseInt(br.readLine());
//연산
//area = (double)width * height / 2 ; //강제형변환.
area = width * height / 2.0 ; //암시적 형변환.
//출력
System.out.println("넓이 : " + area);
}
}
http://colorscripter.com/info#e" target="_blank" style="color:#4f4f4f; text-decoration:none">Colored by Color Scripter
|
* 실행 결과
밑변 ? 5 높이 ? 8 넓이 : 20.0 |
for문(반복문)
package com.day2;
class Test3 {
public static void main(String[] args) {
float f = 0;
double d = 0;
// 반복문
// for(초기값, 조건, 증가값)
for (int i = 1; i <= 100000; i++) {
f = f + 100000;
d = d + 100000;
}
System.out.println("float: " + (f / 100000)); // 복잡한 연산을 float로 계산하면 데이터
// 손실이 생길 수 있다.
System.out.println("double: " + (d / 100000));
}
}
http://colorscripter.com/info#e" target="_blank" style="color:#4f4f4f; text-decoration:none">Colored by Color Scripter
|
* 실행 결과
float: 99996.055 double: 100000.0 |
Char 자료형, ASCII코드, BufferedReader
package com.day2;
class Test4 {
public static void main(String[] args) throws IOException {
// Char(캐릭터)은 문자를 저장.
// char ch = 'a'; //= 97(ASCII 코드 값이 저장됨)
// 오로지 한개의 문자를 저장.
// char ch = 'asb'; 한개의 문자만 저장하기 때문에 출력 시 a만 출력됨.
char ch, result;
System.out.print("한개의 문자?"); // a(97) 97=ASCII
ch = (char)System.in.read();
//한개의 문자를 읽어냄.
//BufferedReader를 쓸 경우 BufferedReader는 한개의 문자가 아닌 다수의 문자를 읽어내기 때문에
//char 자료형에 쓸 경우 에러가 난다.
//read는 입력스트림(InputStream)으로부터 데이터의 바이트를 읽어들여(ASCII 코드값 읽어옴) int로 저장함.
//문자의 유니코드 값이 int로 변환이 되었는데 ch 변수의 자료형은 char이기 때문에 오류가 남.
//그래서 강제형변환을 해야함.
System.out.println(Integer.toString(ch));
//Integer를 String(문자)로 바꿔줘라. : toString : 원래의 문자로 바꿔달라 (ASCII)
//ASCII 코드가 나옴. a = 97
System.out.println(ch);
//실제로 ASCII 값을 사용하지 않기때문에 a라고 입력하면 a가 나옴.
result = ch>=65 && ch<=90?(char)(ch+32):(ch>=97&&ch<=122? (char)(ch-32):ch);
// (ch>='a'&&ch<='z'? (char)(ch-32):ch); 처럼 사용해도 됨.
// ASCII 코드는 대문자가 소문자보다 32가 작다.
// ex) 대문자 A : 65, 소문자 a : 97
System.out.println(ch + ":" + result);
}
}
http://colorscripter.com/info#e" target="_blank" style="color:#4f4f4f; text-decoration:none">Colored by Color Scripter
|
* 실행 결과
한개의 문자?a
97
a
a:A
|
제어문 : 제어문을 배워야 프로그래밍이 풍성해짐. (if, swich, for, while, do~while)
if문 (짝수, 홀수 판별하기)
package com.day2;
class Test5 {
public static void main(String[] args) throws IOException {
//제어문 : 제어문을 배워야 프로그래밍이 풍성해짐.
//if, swich, for, while, do~while
BufferedReader br = new BufferedReader (
new InputStreamReader(System.in));
int num;//null
System.out.print("수 입력");
num = Integer.parseInt(br.readLine());
String str;
//if(조건절) - if는 초기값을 설정해야 한다. //String str = "";
// 단일 IF문을 쓸때는 초기값을 설정하지 않았을경우 쓰레기 값이 표시가 되는데
// 쓰레기 값은 표시되지 않기 때문에 오류가 남.
// If~else문을 쓸때는 두개의 값중 하나는 나오겠구나라는걸 알기 때문에 초기값을
// 설정하지 않아도 오류가 나지 않음.
//단일 if문
/*
if(num%2==0){
str = "짝수";
}
if (num%2!=0){
str = "홀수";
}
*/
//if~else문
if(num%2==0){
str = "짝수";
}else{
str = "홀수";
}
System.out.println(num + ":" + str);
}
}
http://colorscripter.com/info#e" target="_blank" style="color:#4f4f4f; text-decoration:none">Colored by Color Scripter
|
* 실행 결과
수 입력11 11:홀수 |
else if (수, 우, 미, 양, 가 판별하기)
package com.day2;
class Test6 {
public static void main(String[] args)
{
Scanner sc = new Scanner(System.in);
String name;
int kor;
System.out.print("이름?"); //수지
System.out.print("국어?");//60
kor = sc.nextInt();
String pan;
//Scanner는 throws IOException을 사용 안한다.!! 편함.
//if ~ else : 2개의 조건을 사용할떄.
//if ~ else if : 2개 이상의 조건을 사용할때.
if(kor>=90){ //조건 사용할때 가장 상단의 작성하는 조건에 가장크게 작성해야한다.
pan ="수";
}else if(kor>=80){
pan = "우";
}else if(kor>=70){
pan = "미";
}else if(kor>=60){
pan = "양";
}else{
pan="가";
}
System.out.println(name + ":" + kor + ":" + pan);
}
}
http://colorscripter.com/info#e" target="_blank" style="color:#4f4f4f; text-decoration:none">Colored by Color Scripter
|
* 실행 결과
이름?suzi
국어?80
suzi:80:우
|
Scanner 사용
package com.day2;
class Test7 {
public static void main(String[] args) {
//문자의 단락패턴을 사용해 분류.
//기본 단락은 공백
Scanner sc = new Scanner (System.in);
String name;
int kor, eng, mat;
//suzi 40 60 70
//연결된 문자를 공백으로 구분하여 한번에 입력
/* BufferedReader는 전부다 하나하나 출력해야함
System.out.print("이름 ?");
System.out.print("국어 ?");
System.out.print("영어 ?");
System.out.print("수학 ?");
*/
//System.out.print("이름 국어 영어 수학?");
//suzi,40,60,70
System.out.print("이름, 국어, 영어, 수학?");
//콤마로 구분된 데이터 읽기
//sc = newScanner(sc.next) : suzi,40,60,70를 통째로 읽어옴.
//\\s*,\\s* :정교화 표현식, \\s* : 공백
//공백없이 콤마로 구분해라
//공백을 기본으로 인식하기 때문에 suzi, 40, 60, 70로 작성하면 에러남
name = sc.next();
kor = sc.nextInt();
eng = sc.nextInt();
mat = sc.nextInt();
//next (); 스캐너
System.out.println(name + ":" + (kor+eng+mat) + "점");
}
}
http://colorscripter.com/info#e" target="_blank" style="color:#4f4f4f; text-decoration:none">Colored by Color Scripter
|
* 실행 결과
이름, 국어, 영어, 수학?suzi,40,60,70
suzi:170점
|
728x90
반응형
'IT 개발 > JAVA' 카테고리의 다른 글
poi 라이브러리 / Excel DB 적재 (0) | 2020.01.14 |
---|---|
Date 관련 클래스 (0) | 2019.08.13 |
JAVA (3일차) - 반복분 (0) | 2019.06.15 |
JAVA (1일차) - 기초 다지기 (0) | 2019.06.13 |
JDBC 1일차 (DB 연동, 삽입, 수정, 삭제) (0) | 2019.01.31 |