본문 바로가기
Java/└ [JAVA] Practice

[실습문제] printf, Scanner

by 박채니 2022. 3. 1.

안녕하세요, 코린이의 코딩 학습기 채니 입니다.

 

printf, Scanner에 대해서 간단한 실습 문제들을 풀어보았습니다.

 

개인 포스팅용으로 내용에 오류 및 잘못된 정보가 있을 수 있습니다.


@실습 문제 1

자신의 신상정보를 저장할 변수를 만들고 정보를 변수에 대입, 출력하는 프로그램을 작성하세요.
(System.out.printf 메소드 사용할것.)
  - 이름, 나이, 성별,주소, 전화번호, 이메일      

=======================================================================
이름             나이             성별          전화번호                           이메일                             주소
=======================================================================
홍길동          22                 남            01012341234         hgd@naver.com          경기도 광주시
홍길순          20                 여            010123412341       hgs@gmail.com         전라남도 광주시

작성한 변수를 재사용해 팀메이트의 정보를 다시 변수에 대입 출력하는 프로그램으로 수정하세요.

 

public void test() {
	String line = "=========================================================";
	String list = ("이름    나이   성별	     전화번호	    이메일	   주소");
		
	String name = "박채니";
	int age = 24;
	char gender = '여';
	String phoneNum = "01012345678";
	String mail = "abc@naver.com";
	String addr = "서울시 송파구";
		
	System.out.println(line);
	System.out.println(list);
	System.out.println(line);
	System.out.printf("%s%5d%5c%15s%15s%10s\n", name, age, gender, phoneNum, mail, addr);
		
	name = "갱미니";
	age = 29;
	gender = '남';
	phoneNum = "01098765432";
	mail = "bcd@naver.com";
	addr = "경기도 수원시";
	System.out.printf("%s%5d%5c%15s%15s%10s\n", name, age, gender, phoneNum, mail, addr);
}

@콘솔출력값
=========================================================
이름    나이   성별	     전화번호	    이메일	   주소
=========================================================
박채니   24    여    01012345678  abc@naver.com   서울시 송파구
갱미니   29    남    01098765432  bcd@naver.com   경기도 수원시


@실습 문제 2
Scanner문제 : 사용자의 이름(String), 나이(int), 주소(String), 키(double), 몸무게(double), 성별(char)를 입력받고 출력하는 프로그램을 작성하세요.
- 키와 몸무게는 실수를 입력받되(nextDouble), 정수로 변환하여 출력

 

public void test2() {
	Scanner sc = new Scanner(System.in);
		
	System.out.print("> 이름과 나이를 입력하세요 : ");
	String name = sc.next();	//공백문자 전까지 출력
	int age = sc.nextInt();		//실제 값 이전의 공백문자 버림
		
	System.out.print("> 주소를 입력하세요 : ");
	sc.nextLine();	//개행문자 날리기용
	String addr = sc.nextLine();
		
	System.out.print("> 키와 몸무게를 입력하세요 : ");
	int height = (int)sc.nextDouble();
	int weight = (int)sc.nextDouble();
		
	System.out.print("> 성별을 입력하세요 : ");
	char gender = sc.next().charAt(0);
		
	System.out.printf("이름 : %s, 나이 : %d\n", name, age);
	System.out.printf("주소 : %s\n", addr	);
	System.out.printf("키 : %d, 몸무게 : %d\n", height, weight);
	System.out.printf("성별 : %c\n", gender);
}

@콘솔출력값
> 이름과 나이를 입력하세요 : 박채니 24
> 주소를 입력하세요 : 서울시 송파구
> 키와 몸무게를 입력하세요 : 160.5 46.5
> 성별을 입력하세요 : 여자
이름 : 박채니, 나이 : 24
주소 : 서울시 송파구
키 : 160, 몸무게 : 46
성별 : 여

next()계열 메소드와 nextLine계열 메소드 특징을 활용하여 풀이해보았음.

 

@실습 문제 3-1

[연습]

 => 실행내용 : 정수 두 개를 입력받아, 두 수의 합, 차, 곱
나누기한 몫과 나머지 출력
 => 입력예
첫번째 정수 : 23
두번째 정수 : 7
 => 출력예   계산식
더하기 결과 : 30  --> (값1 + 값2)
빼기 결과 : 16   --> (값1 - 값2)
곱하기 결과 : 161 --> (값1 * 값2)
나누기한 몫 : 3   --> (값1 / 값2)
나누기한 나머지 : 2  --> (값1 % 값2)

 

public void test3() {
	Scanner sc = new Scanner(System.in);
		
	System.out.print("> 첫 번째 정수를 입력하세요 : ");
	int a = sc.nextInt();
	System.out.print("> 두 번째 정수를 입력하세요 : ");
	int b = sc.nextInt();
		
	System.out.printf("더하기 결과 : %d + %d = %d\n", a, b, a+b);
	System.out.printf("빼기 결과 : %d - %d = %d\n", a, b, a-b);
	System.out.printf("곱하기 결과 : %d x %d = %d\n", a, b, a*b);
	System.out.printf("나누기 결과 : %d / %d = %d\n", a, b, a/b);
	System.out.printf("나누기한 나머지 : %d %% %d = %d\n", a, b, a%b);
}

@콘솔출력값
> 첫 번째 정수를 입력하세요 : 23
> 두 번째 정수를 입력하세요 : 7
더하기 결과 : 23 + 7 = 30
빼기 결과 : 23 - 7 = 16
곱하기 결과 : 23 x 7 = 161
나누기 결과 : 23 / 7 = 3
나누기한 나머지 : 23 % 7 = 2

 

@실습 문제 3-2
[연습 2]

 => 실행내용 : 가로, 세로 값을 실수형으로 입력받아
사각형의 면적과 둘레를 계산하여 출력
계산공식 - 면적 : 가로 * 세로
둘레 : (가로 + 세로) * 2
 => 입력예
가로 : 13.5
세로 : 41.7
 => 출력예
면적 : 562.95
둘레 : 110.4

 

public void test4() {
	Scanner sc = new Scanner(System.in);
		
	System.out.print("> 가로 값을 입력하세요 (예:13.5) : ");
	double wight = sc.nextDouble();
		
	System.out.print("> 세로 값을 입력하세요 (예:13.5) : ");
	double height = sc.nextDouble();
		
	System.out.printf("면적 : %.2f\n", wight * height);
	System.out.printf("둘레 : %.1f\n", (wight + height) * 2);
}

@콘솔출력값
> 가로 값을 입력하세요 (예:13.5) : 13.5
> 세로 값을 입력하세요 (예:13.5) : 41.7
면적 : 562.95
둘레 : 110.4



@실습 문제 3-3
[연습 3]
 => 실행내용 : 영어 문자열 값을 키보드로 입력받아
각 자리의 문자를 출력
 => 입력예
문자열(3글자이상)을 입력하시오 : apple
 => 출력예 (3개까지만 출력해 봄)
첫번째 문자 : a
두번째 문자 : p
세번째 문자 : p

 

public void test5() {
	Scanner sc = new Scanner(System.in);
		
	System.out.print("> 문자열(3글자이상)을 입력하시오 : ");
	String str = sc.next();
		
	System.out.printf("첫 번째 문자 : %s\n", str.charAt(0));
	System.out.printf("두 번째 문자 : %s\n", str.charAt(1));
	System.out.printf("세 번째 문자 : %s\n", str.charAt(2));
}

@콘솔출력값
> 문자열(3글자이상)을 입력하시오 : apple
첫 번째 문자 : a
두 번째 문자 : p
세 번째 문자 : p

'Java > └ [JAVA] Practice' 카테고리의 다른 글

[실습문제] 반복문, 분기문  (0) 2022.04.11
[실습문제] switch, for문  (0) 2022.03.15
[실습문제] 난수, 조건문  (0) 2022.03.10
[실습문제] 연산자  (0) 2022.03.10
[실습 문제] 자바 기초, 변수  (0) 2022.02.26