Java 실습

[220511] for문 활용

ss__0 2022. 5. 12. 22:30

■:: 목표달성!
1. 이중for가 무섭지 않다!  (맞다!)
for, while, do while 버젼으로 만드시오.
    *
   **
   ***
   ****
   *****
   ******
   *******
   ********
   *********
   **********
   ***********   //11개

 

 코드 및 출력화면 

for version

 

while version

 

do_while version

 

■2. 트러블슈팅

 

2-(1). for문 종료 조건 선언하기

for 반복문을 만들 때 시작 조건을 int i=1였는데 i의 종료 조건을 도출해내지 못했다. 

내가 헷갈렸던 이유는 for에서 반복되는 구문은 for의 변수 i와 관계없이 돌아가는 구문이었기 때문이다.

선생님께 도움을 요청했고 받은 힌트는 '반복되는 구문에서 종료 조건을 도출해내라'였고 반복문이 돌아가는 동안 갈 일이 없는 9999를 i에 대입함으로써 종료 조건을 선언했다. 

//문제 해결한 코드
for(int i=1;i<=9999;i++) {
		System.out.print(i+ "번. 1~100사이의 숫자를 입력하세요 >"); in = sc.nextInt();
		if(in==random) {result="정답 : "+ in +"=>" + i +"번에 정답을 맞췄습니다.\r\n"; i=9999;}
		else if(in>random) {result = "[DOWN]\r\n";}
		else if(in<random) {result ="[UP]\r\n";}
		System.out.print(result);
		}


2-(2). int 숫자를 String 문자열로 변환

System.out.println(num); 과 System.out.println(str);으로 출력했을 때, 둘 다 '123'이 출력되기는 했지만 num은 숫자이고 str은 문자열임!

따라서 나누기 10을 했을 때 str/10은 The operator / is undefined for the argument type(s) String, int 오류가 발생한다. 

숫자를 문자열로 치환하고 싶을 때 꼭 기억할 것! String str="" + num

 

2-(3). for반복문에서 모두 조건이 참일 경우 출력구문 위치 선정

Ex012에서 12045 문자열에서 모든 문자가 숫자가 아니라면 '숫자가 아닙니다' 출력하기는 성공했지만

문자열이 모두 숫자로 구성되어 있는 경우라면 '숫자입니다'를 출력해야 한다.

그러나 어디에 {System.out.println(value+"는 숫자로 구성되어있습니다.");}을 적어야 하는지 몰라서 모든 조건이 true 일때 출력구문을 작성하지 못했다. 

//모두 참일 경우, 출력구문을 어디에 넣어야 할지 고민했던 코드
for(int i=0;i<=4;i++) {
			ch=value.charAt(i);
			num = (ch>=48 && ch<=57)? true : false;
			sum = sum &&num;
			result = (num==false)? value+"는 숫자가 아닙니다.":"";
			System.out.print(result);
		}
//시행착오 끝에 해결한 코드
for(int i=0;i<=4;i++) {
			ch=value.charAt(i);
			num = (ch>=48 && ch<=57)? true : false;
			sum = sum &&num;
			result = (num==false)? value+"는 숫자가 아닙니다.":"";
			System.out.print(result);
		} if(sum==true) {System.out.println(value+"는 숫자로 구성되어있습니다.");}

정답은 간단했다. for문을 빠져나올 때 모든 조건이 참일 경우의 출력구문을 if문으로 작성하면 될 일이었다.

2-(4). 회문수


■3. 오늘의 소감
주말에 break; continue; 복습이 필요하다.

갑자기 다시 사용하려니까 가물가물하다.

'Java 실습' 카테고리의 다른 글

[220513] 배열  (0) 2022.05.15
[220512]배열 Array  (0) 2022.05.12
[220510]다중 for문  (0) 2022.05.10
[220509]Repeat 예제  (0) 2022.05.10
[220506][MINI_Project]Bank_ver2  (0) 2022.05.06