목록2024/01 (24)
사이먼's 코딩노트
[클래스와 메서드] 모든 객체는 우리가 흔히 알고 있는 자료형 int, double를 통해서만 생성되지 않는다. 클래스라는 설계도를 만들어 객체 타입을 사용자가 직접 정의하여 생성할 수 있다. public class Main { public static void main(String[] args) { // 객체 생성 Person a = new Person(); a.age = 20; a.isMarried = false; a.name = "철수"; a.introduce(); a.age = 21; a.name = "영수"; a.introduce(); } } class Person { int age; boolean isMarried; String name; void introduce() { System.out...
지난번에 이어 함수와 관련된 몇 가지 문제를 더 풀어보자. [문제 1] 입력받은 숫자가 10이라고 할때 1부터 10 사이에 존재하는 모든 소수의 개수와 합을 출력하는 함수를 구현해보자. #include #pragma warning (disable: 4996) int is_prime_number(int num) { if(num < 2) { return 0; } for(int i = 2; i < num; i++) { if(num % i == 0) { return 0; } } return 1; } int get_1_to_n_prime_numbers_count(int n) { int count; for(int i = 1; i 1부터 1000사이에 존재하는 소수의 합 : 76127 number = 2000; co..
[객체] [객체가 필요한 이유] 변수에는 오직 값 하나만 넣을 수 있다. 프로그래밍을 하다보면 변수에 값을 여러개 넣을 필요가 있을 때가 있다. 그래서 고안된 것이 객체이다. 객체는 커피 캐리어에 비유할 수 있다. 커피 캐리어에는 커피를 여러잔 담을 수 있고, 용도에 따라 종류가 여러가지 있다. 프로그래밍을 할 때 상황에 따라 서로 다른 종류의 객체 여러개가 필요하다. 객체를 일종의 제품으로 보았을 때 객체를 만들기 위해서는 설계도 즉, 클래스가 필요하다. 객체는 너무 커서 변수에 담을 수 없다. 클래스로는 객체도 만들 수 있고, 그 객체를 조종할 수 있는 리모콘도 만들 수 있으며 객체 리모콘을 담을 변수도 만들 수 있다. [배열 객체] package org.example; //TIP To Run cod..
이번엔 함수와 관련된 문제들을 풀어봅시다. 모든 문제는 main 함수 안에 코드는 모두 작성되어 있는 상태에서 새로운 함수를 어떻게 구현하는지를 풀어보는 것이다. [문제 1] 입력받은 정수가 짝수인지 아닌지 판별해주는 함수를 구현해보자. #include int is_even(int num) { if(num % 2 == 0) { return 1; } else { return 0; } return 0; } int main(void) { printf("17은(는) 짝수인가요? : %d\n", is_even(17)); printf("500은(는) 짝수인가요? : %d\n", is_even(500)); return 0; } main 함수 안에 출력문에서 is_even() 라는 함수에 17, 500이라는 인자를 넣..
[함수] C언어에서는 main 함수 외에 사용자 지정으로 함수를 정의할 수 있다. 실제 코드는 main 함수에서 실행되기 때문에 main 함수에서 개발자가 지정한 임의의 함수가 실행되기 위해서는 반드시 main 함수 위에 함수를 생성해야한다. [case #1 - 구구단 5단 함수 호출] 다음 예시는 구구단 5단을 구현하는 코드이다. #include void print_5dan() { int dan = 5; printf("== %d단 ==\n", dan); for(int i = 0; i
이번에 모작해볼 홈페이지는 오늘의 집입니다. 모작의 범위는 2차메뉴와 제품소개 까지이며, 마찬가지로 단계를 나눠서 진행하겠습니다. 완성 디자인 1단계 : 팝업창 제작 오늘의 집 홈페이지의 경우 상단 탑바 위에 팝업창이 있기 때문에 가장 최상단에 팝업 section을 두어 제작하였다. 2단계 : 그리드 및 레이아웃 잡기 팝업창 아래에 상단 탑바가 들어갈 곳의 구조를 잡아줬다. 상단 탑바는 가운데 1차 메뉴와 오른쪽 유저메뉴에 고정된 너비값을 주고 로고박스에는 flex-grow와 flex-basis를 통해 남은 공간을 할당하도록 했다. 3단계 : 로고 커스텀 오늘의 집 로고는 해당 홈페이지의 개발자모드(F12)를 통해 이미지를 가져올 수 없어, 필자가 직접 로고를 캡쳐하여 이미지태그에 적용하였다. 4단계 :..
[반복문] 예를 들어 1부터 1000까지의 숫자를 하나씩 출력해보자고 했을 때, 지금까지 배운 지식으로는 System.out.println문을 통해서 일일이 1000개를 작성해야한다. 하지만 이것은 굉장히 비효율적이고 귀찮은 일이다. 이런 작업을 훨씬 수월하게 동작하게 위해서 우리는 반복문을 활용해야한다. 반복문은 크게 for문과 while문 두 가지로 나뉠 수 있다. 두 가지는 문법이 다를 뿐 의미는 동일하다. [while] 아래는 while문의 예시로서 i라는 변수가 5이하 일때는 해당 숫자를 출력문으로 출력한다. class Main { public static void main(String[] args) { int i = 1; while (i
[조건문] Java에서는 True/False로 참/거짓을 분별한다. 조건문의 기본 구조 및 예시는 아래와 같다. class Main { public static void main(String[] args) { int age = 30; if (age > 19) { System.out.println("성인입니다."); } } } 기본 구조 if()에서 ( ) 괄호 안에 조건을 써놓고 조건이 참일 때 { } 안에 작성한 문법들이 동작한다. 조건에는 사칙연산이 아닌 논리연산을 넣어야 한다. 위 예시에서는 age라는 변수에 30을 넣고 조건문을 통해 성인인지 아닌지를 판별할 수 있다. 만약 age가 19이라는 숫자 초과면 "성인입니다."라는 출력문을 출력하게 된다. class Main { public static..
[반복문] 예를 들어 1부터 1000까지의 숫자를 하나씩 출력해보자고 했을 때, 지금까지 배운 지식으로는 printf문을 통해서 일일이 1000개를 작성해야한다. 하지만 이것은 굉장히 비효율적이고 귀찮은 일이다. 이런 작업을 훨씬 수월하게 동작하게 위해서 우리는 반복문을 활용해야한다. 반복문은 크게 for문과 while문 두 가지로 나뉠 수 있다. 두 가지는 문법이 다를 뿐 의미는 동일하다. [while] 아래는 while문의 예시로서 i라는 변수가 5이하 일때는 해당 숫자를 출력문으로 출력한다. #include int main(void) { int i = 1; while (i
[연산자] [사칙연산] + : 더하기 - : 빼기 * : 곱하기 / : 나누기 [논리연산] == : 같다 != : 다르다 > : 크다(초과) = : 크거나 같다(이상) = 20) { prinf("성인입니다."); } return 0; } if를 하나씩 쓰게되면 프로그램 상 위에서 아래로 내려가면서 전부 체크를 하게 되어있다. 프로그램의 효율성이나 실행 속도를 빠르게하기 위해서는 상황에 맞춰 조건문을 하나로 묶어주는 것이 좋다. 하나로 묶는다는 의미는 최초 작성한 조건문 if 아래에 else if를 작성하는 것이다. 정해진 조건 중에 if나 else if에 참이 없을 경우, 가장 마지막에 예외를 막기위한 else 조건문을 작성한다. else는 조건부를 작성하지 않아도 된다. if문 안..