Java 연산자 #2

jjinny_0609·2023년 2월 2일
0

Java

목록 보기
5/31
  1. 컴파일 에러가 발생하는 위치와 이유
public class Final_test {
	public static void main(String[] args) {
		int b = 5;
		b = -b;
		// -1 * 5
		// Type mismatch: cannot convert from int to byte
		int result = 10 / b;
		System.out.println(result);
	}
}
  1. 다음 코드를 실행했을 때 출력결과는?
package ch03;

public class Final_test {
	public static void main(String[] args) {
		int x = 10;
		int y = 20;
		
		int z = (++x) + (y--);
//				11		 20
//  				z : 31
		System.out.println(z);
//		x : 11 y : 19
	}
}
  1. 다음 코드에서 stop이 true 일때 반복을 멈추게 하시오.
public class Final_test {
	public static void main(String[] args) {
		boolean stop = true;
		
		while(!stop) {
			
		}
	}
}
  1. 534자루의 연필을 30명의 학생들에게 똑같은 개수로 나우어 줄 때 1인당 몇 개를 가질 수 있고, 몇 개가 남는지를 구하는 코드를 구하세요.
package ch03;

public class Final_test {
	public static void main(String[] args) {
		// 534 자루의 연필
		int pencils = 534;
		// 30명의 학생
		int students = 30;
			
		//1인당 몇개
		int pencilsPerStudent = pencils/students;
		System.out.println("1인당 연필 : " + pencilsPerStudent);
		
		//남은 연필 개수
		int pencilsLeft = pencils % students;
		System.out.println("남은 연필 : " + pencilsLeft);
	}
}

  1. 다음 코드를 실행하면 출력결과로 5를 기대했는데 4가 출력되었습니다. 어디에서 잘못 작성 되었는지 작성해보세요.
public class Final_test {
	public static void main(String[] args) {
		int var1 = 5;
		int var2 = 2;
		//				5	/	2 = 2.0 -> 왜? 정수나누기 정수는 정수인 결과값이 출력됨
		//double var3  = var1 / var2 ; 
        double var3  = (double)var1 / var2 ; // 해결하기 위해선 두값 중 아무값에 실수값을 부여
		int var4 = (int)(var3 * var2);
		System.out.println(var4);
	}
}
  1. 다음은 십이 자리 이하를 버리는 코드입니다. 변수 value의 값이 356이라면 300이 나올수 있도록 ()에 알맞은 코드를 작성하세요(이때 산술연산자만 사용).
public class Final_test {
	public static void main(String[] args) {
		// 십의 자리이하를 버려라.(356 -> 300)
		int value = 356;
		System.out.println((value/100) * 100);
        //(value/100) 3이 남고 * 100을하면 300이 나옴
	}
}
  1. 다음 코드를 실행하면 출력 결과로 "10%입니다."를 기대했는데 "10%가 아닙니다." 가 출력되었습니다. 어디에서 잘못 작성된 것일까요?
public class Final_test {
	public static void main(String[] args) {
		float var1 = 10f;
		float var2 = var1 / 100;
		
		System.out.printf("%.9f\n",var2);
		System.out.printf("%.9f\n",0.1);
		if(var2 == 0.1) {
			System.out.println("10%입니다.");
		} else {
			System.out.println("10%가 아닙니다.");
		}
	}
}

  1. 다음 코드는 사다리꼴의 넓이를 구하는 코드입니다. 정확히 소수 자릿수가 나올 수 있도록 ()에 알맞은 코드를 작성하세요.
    [사다리꼴 넓이 구하는 공식 : (윗변 + 아랫변) * 높이 / 2]
public class Final_test {
	public static void main(String[] args) {
		int lengthTop = 5;
		int lengthBottom = 10;
		int height = 7;
	    //double area = ((lengthBottom + lengthTop)*height/2.0);
        double area = ((lengthBottom + lengthTop)*(double)height/2);
		//52.5가 나와야함
		System.out.println(area);
	}
}

  1. 키보드로 두 실수를 다음과 같이 입력받습니다.(Scanner 이용). 입력도니 첫 번째 수에 두번째수를 나눈 결과를 "결과:값" 으로 출력하되, 두번째 수에 0 또는 0.0이 입력되었을 경우 " 결과: 무한대"가 출력 되도록 코드를 작성해보세요(Scanner의 next() 사용).
import java.util.Scanner;

public class Final_test {
	public static void main(String[] args) {
		// 키보드로 두 실수를 다음과 같이 입력받습니다.(Scanner 이용)
		Scanner scanner = new Scanner(System.in);
		
		System.out.print("첫 번째 수 : ");
		//double num1 = Double.parseDouble(scanner.nextLine()); // string 타입을 더블로 바꾸기위해서 parseDouble 사용
		double num1 = scanner.nextDouble();
		System.out.print("두 번째 수 : ");
		//double num2 = Double.parseDouble(scanner.nextLine());
		double num2 = scanner.nextDouble();
		
		// 입력된 첫 번째 수(num1)에 두번째 수(num2)를 나눈 결과 : 값으로 출력
		// 두 번째 수(num2)에 0 또는 0.0을 입력되었을 때
		// 결과 : 무한대
		if(num2 == 0.0) {
			System.out.println("결과 : 무한대");
		}else {
			System.out.println("결과 : " + num1/num2);
		}
	}
}


  1. 반지름이 10인 원의 넓이를 구하는데 다음과 같이 var2 ".", var 을 + 연산해서 원주율 ()을 얻은 다음 계산하려고 합니다. 올바른 결과가 나오도록 코드를 수정해보세요.
public class Final_test {
	public static void main(String[] args) {
		int var1 = 10;	// 반지름
		int var2 = 3;	// 원주율(3.14 중에서 소수점 앞)
		int var3 = 14;	// 원주율(3.14 중에서 소수점 뒤)
		// 원의 넓이 = 반지름 * 반지름 * 3.14
		//				10 * 10   * 3    + 문자열 + 14
		//				10 * 10   * "3." +        14
		//				10 * 10   * "3.14"
		//				10 * 10   * 3.14
						
		double var4 = var1 * var1 * Double.parseDouble(var2 + "." + var3);
		System.out.println("원의 넓이 : "+var4);
	}
}

  1. 키보드로 아이디와 패스워드를 입력받습니다. 입력 조건으로 아이디는 문자열이고 패스워드는 정수입니다(패스워드는 int 타입으로 변환). 입력된 내용을 비교해서 아이디가 "java"이고 패스워드가 12345라면 "로그인 성공"을 출력하고 그렇지 않으면 "로그인 실패"를 출력하도록 알맞은 코드를 작성해보세요.
import java.util.Scanner;

public class Final_test {
	public static void main(String[] args) {
		Scanner scanner = new Scanner(System.in);
		
		System.out.println("아이디 : ");
		String id = scanner.nextLine();
		
		System.out.println("패스워드 : ");
		String strPassword = scanner.nextLine();
		// 패스워드는 int 타입으로 변환
		int password = Integer.parseInt(strPassword);
		
		if(id.equals("java")){	//아이디가 "java"이고
			//string의 타입 비교는 .equals 사용
			if(password == 12345) {	//패스워드가 12345 이면
				System.out.println("로그인 성공");
			}else{
				System.out.println("로그인 실패 : 패스워드가 틀림");
			}
		}else {
			System.out.println("로그인 실패 : 아이디 존재하지 않음");
		}
	}
}

12 다음 코드는 비교 연산자와 논리 연산자의 복합 연산식입니다. 연산식의 출력 결과를 괄호() 속에 넣으세요.

public class Final_test {
	public static void main(String[] args) {
		int x = 10;
		int y = 5;
		
		//					10 > 7	&& y <= 5
		//					   true && true
		//						   true
		System.out.println((x > 7 && (y <= 5)));
		
		//				 10 % 3 == 2 ||  5 % 2 != 1
		//					1   == 2 ||    1   != 1
		//					  false  ||    false
		//							false
		System.out.println((x%3 == 2) || (y%2 != 1));
	}
}

  1. 대입 연산자(=)와 산술 연산자(+,-,*,/)로 구성된 실행문을 대입 연산자 하나로 구성된 실행문으로 변경해보세요.
public class Final_test {
	public static void main(String[] args) {
		int value = 0;
		
		value = value + 10;	// value += 10
		value = value - 10;	// value -= 10
		value = value * 10; // value *= 10
		value = value / 10; // value /= 10
	}
}
  1. 다음 코드를 실행했을 때 출력 결과는 무엇입니까?
public class Final_test {
	public static void main(String[] args) {
		int score = 85;
		//				 !(85 > 90)
		//				   !false
		//					true
		String result = (!(score > 90)) ? "가" : "나";
		System.out.println(result);
	}
}

profile
뉴비 개발자 입니다. velog 주소 : https://velog.io/@jjinny_0609 Github 주소 :

0개의 댓글