본문 바로가기
Development (국비 복습 )/자바

[2023-03-15]for문 활용

by Puddingforever 2023. 3. 15.

float은 계산시 오차가 발생할 수 있기 때문에 메소드 타입을 String값으로 변환해서 보여준다. 

 

int 범위에 있는 것만 곱하기 

 

float reuslt = safeMultiplay(1100000,-222222);



public static String safeMultiply(int num1, int num2) {

String wrongResult = "NaN" ;



if (num1 > 0 ) {

if (num2 > 0 ) { //num1, num2 모두 양수

if (num1 > Integer.MAX_VALUE / num2) { //(num1 * num2 > Integer.MAX_VALUE)

return wrongResult;

}



} else { //num1은 양수, num2는 음수 // 음수나오니까 min_value보다 작으면 안됌

if (num2 < Integer.MIN_VALUE / num1 ) { //(num1 * num2 < Integer.MIN_VALUE )

return wrongResult;

}

}



} else { // num1 <= 0

if (num2 > 0 ) { //num1은 음수, num2는 양수

if (num1 < Integer.MIN_VALUE / num2) { //(num1 * num2 < Integer.MIN_VALUE)

return wrongResult;

}



} else { //num1, num2 모두 음수인 경우

if (num1 < Integer.MAX_VALUE / num2 ) { //(num1 * num2 > Integer.MAX_VALUE )

return wrongResult;

}

   }

}

return String.valueOf(num1 * num2) ;

}

 

 

 

 

// 숫자 랜덤

자바스크립트에서는 Math,floor()로 소수점을 없앴는데, 자바는 casting이 가능해서 

(int) 강제 형변환 해준다. 

1~3까지 뽑음 

(int)(Math.random()*3)+1;

 

	String[] grades = {"A","a","B","b","C","c"};
		int num = (int)(Math.random()*6);
		String result = grades[num];
		//result 값 랜덤으로 나옴 		
		switch(result) {
		case "A" : 
		case "a" :
			System.out.println("우수 회원입니다.");
			break;
		case "B" :
		case "b" : 
			System.out.println("일반 회원입니다.");
			break;
		default : 
			System.out.println("손님입니다.");
		}

 

 

참고 : switch문 안에 넣을 수 있는 타입은 byte , short , char , int , String 

 


float 값은 정확한 값이 안나오기 때문에 for문에 쓰지 않는다

 

		for(float i = 0; i<1; i = i+0.1F) {
			System.out.println(i);
		}

0.0

0.1

0.2

0.3

0.4

0.5

0.6

0.70000005

0.8000001

0.9000001

 


//1부터 100까지 중의 홀수의 합 

//2로 나눴을 때 1 남으면 홀수

int oddSum = 0;

for(int i=1;i<=100;i++) {

if(i%2==1) {

oddSum = oddSum + i;

}

}

System.out.println(oddSum);

//문제2: 1~100까지의 수 중에서 5의 배수의 합

int five=0;

for(int j=1;j<=100;j++) {

if(j%5==0) {

five = five + j;

}

}

System.out.println(five);



//문제3: 구구단 6단

for(int m=1;m<=9;m++) {

System.out.printf("6 X %d = %d",m,6*m);

System.out.println();

}



System.out.println();



//문제4 : 전체 구구단 1~9단

for(int n=1;n<=9;n++) {

for(int k=1;k<=9;k++) {

System.out.printf("%d X %d = %d",n,k,n*k);

System.out.println();

}

System.out.println();

}

 

댓글