본문 바로가기

JAVA/JAVA

자바 예제 - 자료형 : 사용자로부터 원의 반지름을 입력받아 원의 둘레와 면적을 각각 계산하여 출력하는 프로그램

반응형

사용자로부터 원의 반지름을 입력받아 원의 둘레와 면적을 각각 계산하여 출력하는 프로그램



<참고>

원의 둘레 : 2 * 3.14 * 반지름

원의 면적 : 3.14 * 반지름 * 반지름



<코드>


import java.util.Scanner;


class circle{

public static void main(String []args){

Scanner sc = new Scanner(System.in);

double radius;


System.out.print("원의 반지름?");

radius = sc.nextDouble();


System.out.print("원의 둘레 : " + ( 2 * 3.14 * radius));

System.out.print("원의 면적 : " + ( 3.14 * radius * radius));

}

}



<위의 코드에서 소수이하 2자리만 출력하는 방법>



** APIs 에서 찾음


static string / format(String format, Object...args) 를 이용함

(위에 static 이 들어간것은 뒤에것(여기서는 String)을 클래스로 사용한다)


위의 코드에서

System.out.println("원의 둘레값은 " + String.format("형식지정문자", 값) );

System.out.println("원의 둘레값은 " + String.format("형식지정문자", 2*3.14*circle) );

System.out.println("원의 둘레값은 " + String.format("%.2f", 2*3.14*circle) );


(세번째 .2가 있는것은 소수점2자리까지 해달라는 말임)

(세번째 %는 실수를 의미함)


System.out.println("원의 면적값은 " + String.format("%.2f", 3.14*circle*circle));

(이것도 같은방법을 한것임)



이렇게 바뀜(같은것임)


//


<수학관련 코드>


System.out.println("원의 둘레값은 " + String.format("%.2f", 2*3.14*circle) );

System.out.println("원의 둘레값은 " + String.format("%.2f", 2*Math.PI*circle) );

위에것과 밑에것이 바뀐것은 3.14 대신 Math.PI 를 사용했으며 M을 대문자로 해야함


//



** 자료형(용량)이 다른 것끼리 연산하면 결과값은 그 중 용량이 더 큰 자료형이 된다


ex) int 와 byte을 연산하면 그 결과는 int 가 된다


<자료형 다른 예제>

int radius = 5;

int r = 2 * 3.14 * radius;

System.out.println(r);



이것은 에러가 발생한다.

int 인 2 와 radius(5) /double 인 3.14 이기때문에

위에 것을 출력하려면



int radius = 5;

double r = 2 * 3.14 * radius;

System.out.println(r);


이렇게 바꿔야함


//



** 정수와 정수끼리 연산하면 결과는 정수이다. int 와 int 를 연산하면 그 결과는 int 이다


<정수끼리의 예제>


class TypeTest3{

public static void main(String []args){

int a = 5/2; //결과값 2

double b = 5/2; //결과값 2.5 가 아니다. 2.0이 나온다.


System.out.println(a);

System.out.println(b);

}

}


결과값이 저런 이유는 대입연산자 = 이것이 나오면 오른쪽을 먼저 계산한다. 그래서 저렇게 나온것이다.

그래서 밑에 것처럼 5 나 2 둘중 하나를 실수로 만들어야 한다.


class TypeTest3{

public static void main(String []args){

int a = 5/2; //결과값 2

double b = 5/2.0; //결과값 2.5 가 아니다. 2.0이 나온다.


System.out.println(a);

System.out.println(b);

}

}


<예제>

: 두 수 a를 b로 나눈 값을 출력하기


class  TypeTest4{

public static void main(String[] args) {

// 첫번째방법

int a = 5;

int b = 2;

double c = a/b;


System.out.println(c);


// or 


// 두번째방법

int a = 5;

int b = 2;


System.out.println(a/(double)b);

}

}



반응형