소개
유튜브에서 코딩 교육 채널을 운영하고 있는 나도코딩입니다.
누구나 쉽고 재미있게 코딩을 공부하실 수 있도록 친절한 설명과 쉬운 예제로 강의합니다.
코딩, 함께 하실래요? 😊
🧡 유튜브 나도코딩
🎁 코딩 자율학습 나도코딩의 파이썬 입문
📚 코딩 자율학습 나도코딩의 C 언어 입문
강의
전체11로드맵
전체1수강평
- 진짜 쉽게 알려주시네요! 감사해요! 심화강의도 만들어주시면 좋겠어요!
yoongomtang
2024.04.23
0
- 적절한 예를 들어 수업해주셔서 이해하기가 훨씬 수월하네요...
hsryu71
2024.04.21
0
- 기초를 다지는데에 도움이 많이됨.
pcn01283
2024.04.21
0
게시글
질문&답변
2024.04.25
14 출력이 강의와 다릅니다.
안녕하세요? 바로 윗줄에서 %n 을 누락하여 발생한 현상입니다. System.out.printf("%6.2s", "Java"); // 수정 전 System.out.printf("%6.2s%n", "Java"); // 수정 후 윗줄에서 %n 이 없으니 줄바꿈이 되지 않았으며, 6자리 공간을 확보하고 우측 정렬하여 2글자인 Ja 를 먼저 출력하지요. (1) _ _ _ _ J a System.out.printf("%-6.2s%n", "Java"); 그런 다음에 이어서 위 코드를 실행하게 되니, 6자리 공간을 확보하고 좌측 정렬하여 2글자인 Ja 를 출력하게 됩니다. 즉 (2) J a _ _ _ _ 가 되겠네요. 그런데 둘 사이에 줄바꿈이 없으므로 (1) _ _ _ _ J a (2) J a _ _ _ _ 가 합쳐져서 실제로 보기에는 _ _ _ _ J a J a _ _ _ _ 이렇게 보여지게 된 거에요. 보다 더 확실히 차이를 확인하고 싶다면 이렇게 해보시면 되겠네요. System.out.printf("%6.2s", "ABCD"); // 처음 두 글자 AB System.out.printf("%-6.2s%n", "EFGH"); // 처음 두 글자 EF 위 예제에서는 각각 출력 문장이 (1) _ _ _ _ A B (2) E F _ _ _ _ 이렇게 될텐데, %n 에 해당하는 줄바꿈이 없으니 둘이 합쳐져서 _ _ _ _ A B E F _ _ _ _ 이렇게 출력이 되겠네요 😊 감사합니다. 덧) 첫 번째 스크린샷 이미지는 코드가 잘려서 정확한 확인은 어렵지만 아마도 동일하게 코드 윗줄에서 %n 을 누락하신 것 같아요 😋
- 0
- 1
- 27
질문&답변
2024.04.25
7장에서 메소드 영상을 보다가 궁금한 점이 있어서 연락드립니다.
안녕하세요? 문의주신 내용은 아마도 아래 코드에 대한 질문인 것 같군요 😀 int getVideoFileCount(int type) { if (type == 1) { // 일반 영상 return 9; } else if (type == 2) { // 이벤트 영상 return 1; } return 10; } 말씀하신 것처럼 첫 번째 if 문의 조건을 확인하여 참이면 if 문 내의 문장이 실행되고, 그 이후에는 if 문 밖으로 빠져나와서 이어서 계속하여 코드가 실행되는 것은 맞습니다. void printColor(int color) { if (color == 1) { System.out.println("파란색"); } else if (color == 2) { System.out.println("빨간색"); } System.out.println("색을 출력했어요"); } 만약 위와 같이 코드가 되어 있었고 전달 받은 color 변수가 1 이라면 파란색 색을 출력했어요 color 변수가 2라면 빨간색 색을 출력했어요 그 외의 값이라면 색을 출력했어요 가 출력될 것입니다. 하지만 문제는 바로 return 이에요. 메소드 내에서 return 을 만나면 그 즉시 메소드를 탈출하게 됩니다. 이후에 실행될 코드가 더 있건 말건 상관 없이 말이죠! 마치 아래 코드처럼 생각하시면 됩니다. 이 코드를 작성해보면 void printColor(int color) { return; System.out.println("파란색"); System.out.println("빨간색"); System.out.println("색을 출력했어요"); } 아래와 같이 Unreachable statement 라며 에러가 발생하게 됩니다. 첫 줄의 return; 에 의해 바로 메소드를 탈출하게 되므로 이후에 있는 print 구문들은 실행조차 되지 않으니 확인해보라는 의미인 것이죠. (사진) 다시 원래 코드로 돌아와서, int getVideoFileCount(int type) { if (type == 1) { // 일반 영상 return 9; } else if (type == 2) { // 이벤트 영상 return 1; } return 10; } type 이 만약 1인 경우에는 return 9; 의 동작이 실행되면서 메소드를 바로 탈출하게 되고 이와 동시에 9 를 반환하게 됩니다. 그래서 if 문 밖에 있는 코드인 return 10 은 아예 실행이 되지 않는 것이랍니다. 궁금증 해결에 도움되길 바라겠습니다 😊 감사합니다.
- 0
- 1
- 27
질문&답변
2024.03.31
퀴즈 13 질문입니다.
안녕하세요? 새로운 질문을 작성하시기 전에 작성된 질문이 올바로 삭제되지 않은 문제가 있었던 것 같습니다 😅 아래 링크에 답변을 작성하고 새로운 질문을 확인 중인데 제가 말씀드린 소스코드가 이번 질문에서는 순서가 올바로 작성되었네요! 👉 https://www.inflearn.com/questions/1223648 결과적으로 코드를 잘 작성해주셨습니다. 파일의 내용을 읽어와서 어떤 작업을 할 때 일반적으로는 while (true) { ... } 와 같은 무한 반복문 보다는 작성해주신 것처럼 while ((line = br.readLine()) != null) { ... } 와 같은 코드를 많이 사용합니다. 혹시 어떤 문제로 반복문을 올바로 탈출하지 못하고 계속 반복하는 경우를 방지하기 위해서 그렇습니다. 그리고 (속담 퀴즈입니다 ~ 수고하셨습니다) 부분을 try catch 문 외부에 넣거나 내부에 넣거나 큰 차이는 없습니다. 다만 (수고하셨습니다) 부분이 try catch 외부에 있게 되면 try 문 내에서 어떤 문제가 발생하여 퀴즈가 올바로 진행되지 않았을 경우에도 (수고하셨습니다) 라는 문장이 출력되는 경우가 발생할 수 있겠네요. 사용자는 퀴즈를 하나도 풀지 못했는데 수고했다는 메시지를 출력하면 프로그램의 동작이 다소 매끄럽지 않을 수 있습니다. 이런 경우에는 try catch 내에서 (수고하셨습니다) 라는 메시지를 출력하되, 예상치 못한 오류에 대비하여 catch 문 내에서 (문제가 발생하여 퀴즈가 올바로 진행되지 않았습니다) 정도의 메시지를 출력하면 더 좋을 것 같습니다 😊 감사합니다.
- 0
- 2
- 75
질문&답변
2024.03.31
퀴즈13 질문입니다.
안녕하세요? 작성해주신 코드를 그냥 실행했을 때는 퀴즈가 바로 제시되지 않고 사용자 입력을 기다리는 문제가 있었습니다. 그래서 다음과 같이 while 문 내에서 주석으로 1, 2 작성한 부분의 코드를 수정해봤어요. while ((line = br.readLine()) != null) { System.out.println(line); // 2. 이 곳으로 이동하여 문제 먼저 출력 String answer = br.readLine(); String input = sc.next(); // System.out.println(line); // 1. 이 곳에 있던 코드를 System.out.print("정답 입력 ==> "); if (input.equals(answer)) { System.out.println("정답입니다!!!"); } else { System.out.println("틀렸습니다. 정답은 " + answer); } } 이렇게 했을 때 다음과 같이 올바로 퀴즈를 진행할 수 있었네요. 속담 퀴즈입니다. 빈 칸에 알맞은 말을 입력하시오. (주관식) ------------------------------------------------- (문제) 세 살 __ 여든까지 간다 정답 입력 => 버릇 정답입니다!!! (문제) 소 잃고 ___ 고친다 정답 입력 => 화장실 틀렸습니다. 정답은 외양간입니다. (문제) 천 리 길도 한 __부터 정답 입력 => 끼니 틀렸습니다. 정답은 걸음입니다. ------------------------------------------------- 모든 퀴즈가 완료되었습니다. 수고하셨습니다. ^^ 결과적으로 코드를 잘 작성해주셨습니다. 파일의 내용을 읽어와서 어떤 작업을 할 때 일반적으로는 while (true) { ... } 와 같은 무한 반복문 보다는 작성해주신 것처럼 while ((line = br.readLine()) != null) { ... } 와 같은 코드를 많이 사용합니다. 혹시 어떤 문제로 반복문을 올바로 탈출하지 못하고 계속 반복하는 경우를 방지하기 위해서 그렇습니다. 그리고 (속담 퀴즈입니다 ~ 수고하셨습니다) 부분을 try catch 문 외부에 넣거나 내부에 넣거나 큰 차이는 없습니다. 다만 (수고하셨습니다) 부분이 try catch 외부에 있게 되면 try 문 내에서 어떤 문제가 발생하여 퀴즈가 올바로 진행되지 않았을 경우에도 (수고하셨습니다) 라는 문장이 출력되는 경우가 발생할 수 있겠네요. 사용자는 퀴즈를 하나도 풀지 못했는데 수고했다는 메시지를 출력하면 프로그램의 동작이 다소 매끄럽지 않을 수 있습니다. 이런 경우에는 try catch 내에서 (수고하셨습니다) 라는 메시지를 출력하되, 예상치 못한 오류에 대비하여 catch 문 내에서 (문제가 발생하여 퀴즈가 올바로 진행되지 않았습니다) 정도의 메시지를 출력하면 더 좋을 것 같습니다 😊 감사합니다.
- 0
- 3
- 78
질문&답변
2024.03.31
수업질문입니다
안녕하세요? 클래스 단원의 시작 부분에서 객체 지향 프로그래밍 (OOP : Object-Oriented Programming) 에 대한 특징을 살펴보면서 유지보수 용이, 그리고 말씀하신 높은 재사용성에 대해 설명 드렸습니다. 자바는 객체 지향 프로그래밍의 한 종류이며 이 외에도 C++, C#, Python 등 여러 객체 지향 프로그래밍 언어가 있어요. 객체 지향 프로그래밍 언어 중 하나인 자바의 높은 재사용성은 다음 이유로 설명될 수 있습니다. 상속과 다형성 자바에서는 새로운 클래스를 작성할 때 기존 클래스에서 필요한 기능을 상속 받아 사용하고, 이를 통해 동일한 코드의 중복을 줄이고 이미 작성된 코드를 재사용할 수 있습니다. 인터페이스와 추상 클래스 인터페이스와 추상 클래스를 사용하면 다양한 클래스가 동일한 인터페이스나 추상 클래스를 구현하거나 상속 받아 사용할 수 있으므로 재사용성이 높아집니다. 높은 재사용성이 자바라는 언어 하나만 가지는 특징은 아니랍니다 😊 감사합니다.
- 0
- 1
- 48