moon2421   2년 전

일단은 처음에 배열로선언안하고 이 프로그램에 대한논리만 짜서 실행시켜서 되가지고 
배열개념을 넣었는데.. 여기서 String 배열의 size 정의해주면 바로 terminated되는데 뭐가 문제인지모르겟습니다.

djm03178   2년 전

문제가 너무 많아서 어디서부터 이야기해야 할지 모르겠습니다.

1. 들여쓰기를 잘 합시다.

2. 6번째 줄에서 nextInt를 하는데, 이렇게 할 경우 개행 문자가 버퍼에 남아 14번째 줄의 nextLine이 바로 반환하는데 개행 문자는 버려지므로 s[0]는 ""가 됩니다.

3. 16번째 줄에서 s[i].length()보다 작을 때까지를 조건으로 하고 있는데, s.length를 잘못 생각하신 게 아닌가요. s[0].length()는 0번째 문자열의 길이를 의미합니다. 즉, 2번에서 받았던 그 빈 문자열의 길이, 0이죠. 루프가 한 번도 수행이 못 됩니다.

4. 그 루프의 목적이 뭔지 모르겠네요. size개의 테스트 케이스를 도는 게 목적인가요, 아니면 하나의 케이스에 대해서 문자열을 탐색하는 게 목적인가요? 일단은 후자인 것 같은데 그러면 전체 루프가 끝날 때까지 26번째 줄이 수행되면 안 되겠죠. 결국 이중 루프를 써야 되는데 그게 전혀 보이지가 않습니다.

moon2421   2년 전

제가 이 문제 배열선언안하고 문자열 첫번쨰줄만입력했을떄는 실행이되가지고 거기서 그냥 착안해서

배열만 붙여준거라 딱히 문제가없다고생각해서 해가지고 됬는데.. 위에분 말씀은 잘이해를 못하겠네요 컴퓨터 프로그래밍 시작한지 얼마안되가지고...

djm03178   2년 전

말씀하신대로, 시작한지 얼마 되지 않으신 것 같으니 기초부터 다시 차근차근 보시는 게 좋을 것 같습니다. 지금 상태에서는 코드에 허점이 많이 보이고 잘못된 점을 모두 짚기에도 너무 많습니다.

moon2421   2년 전

제가 처음에 착안한방법이  지금올린 소스같은 이방법인데 밑에 처럼하면 문자열 하나밖에못받아서 

위에 처럼 그냥 단순히 배열만 선언해준건데 왜안되는지 이해가 안되서 여쭤봣네요

djm03178   2년 전

그러니까, 배열을 사용한다는 건 그 배열 각각의 원소에 대해서 개별적인 처리를 해줘야 하는 것을 말하는데, 그 부분에 대한 처리가 전혀 이루어지지 않고 있으니 당연히 제대로 실행될 수가 없는 거죠.

배열의 개념에 대해서 공부를 더 하셔야 할 듯 합니다.

djm03178   2년 전

'단순히' 배열만 선언한 거라고 하셨는데 하나의 객체에 대한 처리를 하는 것과 배열에 대한 처리를 하는 것은 '단순한' 차이가 아니죠. 하나의 객체에 대한 처리였던 것을 - 배열의 모든 객체들에 대한 처리를 하도록 - 반복문을 하나 더 구성해서 돌아야 하는 거죠.

댓글을 작성하려면 로그인해야 합니다.