메서드?

일련의 문을 포함하는 코드 블록

특정 작업을 수행하기 위한 일련의 명령문이 포함된다.

 

메서드를 정의할 때 값을 전달할 수 있다.

 

 

두 수를 더해 출력하는 기능을 하는 메서드

 

1. 이름 짓기

두수를 더해 출력하는 기능이니

동사로 시작하는 이름

=> PrintSum

 

2. 문법에 맞게 기본형으로 적기

void PrintSum()

{

//실행할 명령

}

 

2-2. 매개변수를 만들어 준다.(매개변수가 여러 개 일경우 콤마(,)로 구분

 

void PrintSum(int a, int b)

{

//실행할 명령문

}

 

3. 기능 구현

매개변수 a의 값과 매개변수 b의 값을 더해 출력

void PrintSum(int a, int b)

{

Console.WriteLine(a+7);

}

 

4. 메서드 호출

메서드 호출 시 두 값을 전달

인자가 2개 이상일 경우 콤마(,)로 구분

메서드 내부에서는 매개변수, 외부에서는 인자 또는 인수라고 부른다.

ex) PrintSum(3, 7);

 

인자 또는 인수

메서드 호출 시 전달하려는 값

 

매개변수

전달 된 값을 저장하고 있는 변수

'Study > C#' 카테고리의 다른 글

[C#] 클래스와 new 연산자  (0) 2024.05.29
[C#]메서드 반환타입  (0) 2024.05.28
[C#] 메서드 정의 및 호출  (0) 2024.05.28
[C#] Continue문  (0) 2024.05.27
[C#] break  (0) 2024.05.27

메서드??

일련의 문을 포함하는 코드 블록

 

특정 작업을 수행하기 위한 일련의 명령문이 포함된다

 

문법(syntax)

접근제한자 반환타입 메서드이름()

{

}

 

접근 제한자?

 

메서드에 접근할 수 있도록 public 또는 private등의 접근 수준을 정의

https://www.youtube.com/watch?v=qBshDhSxqHA&list=PLTFRwWXfOIYBmr3fK17E0VhKPyYrGy75z&index=27

 

반환 타입?

반환 값의 데이터 타입

값을 반환하지 않으면 반환타입을 void로 해야 한다.

 

메서드명 : 식별하기 위한 고유한 이름이어야 한다

 

메서드 정의하기

 

1. 어떤 기능을 실행 할지 생각

 

2. 동사로 시작하는 첫 문자 대문자

 

메서드 정의

void SayHello()

{

     //실행할 명령문

}

 

클래스 내부에 정의해야 한다.




 

 

클래스 내부 Main 메서드 위 또는 아래 상관은 없으나 아래쪽에 선언하자

 

메서드 호출

정의와 기능이 구현되었으면 언제든지 사용 가능

 

 

 

메서드는 코드 중복을 줄여 주고 코드 재사용성을 향상시켜 준다.


'Study > C#' 카테고리의 다른 글

[C#]메서드 반환타입  (0) 2024.05.28
[C#] 메서드 매개 변수  (0) 2024.05.28
[C#] Continue문  (0) 2024.05.27
[C#] break  (0) 2024.05.27
[C#] 반복문 while문  (0) 2024.05.27

 

테이블을 두개 만들어 Foreign Key를 이용해 데이터를 연결 시킬 것이다.

 

레퍼런스가 될 buyTbl2의 groupName이 설정이 되어 있지 않다.

 

코드로 해결 할 수 있지만 셋팅으로 바꿔보자

 

 

 

 

Revert를 눌러서 돌아오자

 

groupName을 추가하고 apply

 

 

그후 database -reverse -sqldb선택

 

USE sqlDB;

SELECT * FROM usertbl;

INSERT INTO usertbl VALUES ('HGD', '홍길동', 1900, '서울', NULL, NULL, 181, '2024-05-28');
DESC usertbl;

CREATE TABLE testTBL1(
id INT,
userName CHAR(3),
age INT
);
INSERT INTO testTBL1 VALUES(1, '홍길동', 25);
INSERT INTO testTBL1(id,userName) VALUES(2, '설현');
INSERT INTO testTBL1(id, userName, age) Values (2, '설현', 26);

CREATE TABLE testTbl2(
id int AUTO_INCREMENT PRIMARY KEY,
userName char(3),
age int
);

INSERT INTO testTbl2 VALUES(NULL, '지민', 25);
INSERT INTO testTbl2 VALUES(NULL, '유나', 22);
-- INSERT INTO testTbl2(userName,age) VALUES ('유나', 22);
INSERT INTO testTbl2 VALUES(NULL, '유정', 21);
SELECT * FROM testTbl2;

ALTER TABLE testTbl2 AUTO_INCREMENT = 100;
INSERT INTO testTBL2 VALUES (NULL, '찬미', 23);
SELECT * FROM testTBL2;
INSERT INTO testTBL2 VALUES (NULL, '유진' ,24);
SELECT * FROM testTBL2; -- 유진은 기본값이 id가 100으로 수정되어서 +1인 101로 자동지정된다.

CREATE TABLE testTbl3(
id int AUTO_INCREMENT PRIMARY KEY,
userName char(3),
age int);
ALTER TABLE testTbl3 AUTO_INCREMENT 1000;
SET @@auto_increment_increment = 3; -- AUTO_INCREMENT의 증가를 3씩 설정
INSERT INTO testTbl3 VALUES(NULL, '나연', 20);
INSERT INTO testTbl3 VALUES(NULL, '정연', 18);
INSERT INTO testTbl3 VALUES(NULL, '모모', 19);
SELECT * FROM testTbl3;

-- 마지막 id 가져오기
SELECT last_insert_id();
-- 최대 id 가져오기
SELECT MAX(id) as 'last_insert_id' FROM testTbl3;

-- 한꺼번에 INSERT
INSERT INTO testTbl3 VALUES (NULL, '꺽정', 55), (NULL, '길산', 45);
SELECT * FROM testTbl3;

-- 대량의 샘플 데이터 생성
USE employees;
DESC employees;

USE sqlDB;
CREATE TABLE testTbl4 (id int, Fname VARCHAR(50), Lname varchar(50));
INSERT INTO testTbl4
	SELECT emp_no, first_name, last_name -- 여러 개의 데이터타입 중 가지고 오고 싶은 3개 추출
		FROM employees.employees; -- 서브쿼리
        
SELECT * FROM testTbl4;

-- 데이터의 수정 : UPDATE
-- WHERE 절은 생략가능하지만 모든 열이 바뀔 수 있다.

SELECT * FROM testTbl4 where Fname = 'Kyoichi'; -- 확인을 먼저 한다

UPDATE testTbl4
	SET Lname = '없음'
    WHERE Fname ='Kyoichi';
    
-- SQL 모드 중 하나인 "safe-updates" 모드를 해제하는 명령
SET SQL_SAFE_UPDATES = 0;
    
SELECT * FROM testTbl4;

-- 'Kyoichi' 정보를 복구하자
desc employees.employees;
SELECT emp_no, first_name, last_name From employees.employees
	WHERE first_name = 'Kyoichi';

SELECT first_name FROM userTbl4 WHERE first_name = 'KYOICHI';


UPDATE testTbl4
SET Lname = (SELECT last_name 
             FROM employees.employees 
             WHERE first_name = 'Kyoichi' 
                   AND employees.emp_no = testTbl4.id)
WHERE Fname = 'Kyoichi';

SELECT * FROM testTbl4
WHERE Fname = 'Kyoichi';




-- 가격을 인상시킨 테이블을 사용하자
USE sqldb;
SELECT * FROM buyTbl;
UPDATE buyTbl2 SET price = price * 1.5;
SELECT * FROM buyTbl2;

DESC buyTbl2;
DESC employees.employees;

CREATE TABLE increaseTbl (
    id INT AUTO_INCREMENT PRIMARY KEY,
    groupName CHAR(6) NOT NULL,
    val FLOAT NOT NULL DEFAULT 1
);

/* => 컬럼의 값을 바꾸고 싶다면

ALTER TABLE increaseTbL
ALTER COLUMN VAL SET DEFAULT 1; 
*/

DESC increaseTbl;

SELECT DISTINCT groupName FROM buytbl2;

INSERT INTO increaseTbl(groupName,val)
values ('전자', 1.2), ('의류', 1.3), ('서적', 1.4);

SELECT * FROM increaseTbl;

SELECT * FROM buyTbl2;

-- 모든 groupName이 전자에 해당하는 아이템을들 찾아서 price를
-- increaseTbl에 있는 전자에 해당하는 인상률 만큼 올려준다

SELECT * FROM buyTbl2
	WHERE groupName = '전자';


UPDATE buyTbl2
SET price = price * (SELECT val FROM increaseTbl WHERE groupName = '전자')
WHERE groupName = '전자';


SELECT * FROM buyTbl2;

-- DELETE
SELECT * FROM testTbl4 WHERE Fname = 'Aamer';
DELETE FROM testTbl4 WHERE Fname = 'Aamer' LIMIT 5;

-- 30만건 복사
CREATE TABLE bigTbl1 (SELECT * FROM employees.employees);
CREATE TABLE bigTbl2 (SELECT * FROM employees.employees);
CREATE TABLE bigTbl3 (SELECT * FROM employees.employees);

-- 삭제(속도 확인하기)
DELETE FROM bigTbl1;
DROP TABLE bigTbl2; -- 전부 지울 때
TRUNCATE TABLE bigTbl3; -- 테이블 구조를 남길 때

-- INSERT 문의 확장 기능 중 하나인 "ON DUPLICATE KEY UPDATE"를 사용

CREATE TABLE memberTBL (SELECT userID, name, addr FROM usertbl LIMIT 3); -- 3건만 가져옴
ALTER TABLE memberTBL
	ADD CONSTRAINT pk_memberTBL PRIMARY KEY (userID); -- PK 지정
SELECT * FROM memberTBL;

INSERT INTO memberTBL VALUES ('BBK', '비비코' , '미국');
INSERT INTO memberTBL VALUES ('SJH', '서장훈' , '서울');
INSERT INTO memberTBL VALUES ('HJY', '현주엽', '경기');
SELECT * FROM memberTbl;

INSERT IGNORE INTO memberTBL VALUES ('BBK', '비비코' , '미국');
INSERT IGNORE INTO memberTBL VALUES ('SJH', '서장훈' , '서울');
INSERT IGNORE INTO memberTBL VALUES ('HJY', '현주엽', '경기');
SELECT * FROM memberTbl;

INSERT INTO memberTBL VALUES('BBK', '비비코', '미국')
	ON DUPLICATE KEY UPDATE name = '비비코', addr = '미국';
INSERT INTO memberTBL VALUES('DJW', '동짜몽', '일본')
	ON DUPLICATE KEY UPDATE name = '동짜몽', addr = '일본';
SELECT * FROM memberTbl;

SELECT userID AS '사용자', SUM(price*amount) AS '총 구매액'
	FROM buyTBL GROUP BY userID;
    

WITH abc(userid, total) AS (
    SELECT userid, SUM(price * amount) 
    FROM buyTbl 
    GROUP BY userid
)
SELECT * FROM abc ORDER BY total DESC;

SELECT addr, MAX(height) FROM usertbl GROUP BY addr;

WITH cte_userTBL(addr, maxHeight) AS (
    SELECT addr, MAX(height) AS maxHeight 
    FROM usertbl 
    GROUP BY addr
)
SELECT * FROM cte_userTBL;



WITH cte_userTBL(addr, maxHeight) AS (
    SELECT addr, MAX(height) AS maxHeight 
    FROM usertbl 
    GROUP BY addr
)
SELECT AVG(maxHeight * 1.0) FROM cte_userTBL;

select * from usertbl;

select addr, Max(height) as maxheight from usertbl
group by addr;

-- 첫 번째 방법: 서브쿼리를 사용하여 주소별 최대 키를 먼저 계산한 후에 평균을 구합니다.
SELECT AVG(maxheight) FROM (
    SELECT addr, MAX(height) AS maxheight FROM usertbl GROUP BY addr
) AS subquery;

-- 두 번째 방법: `GROUP BY`를 사용하여 주소별 최대 키를 먼저 계산한 후에 평균을 구합니다.
SELECT AVG(maxheight) FROM (
    SELECT addr, MAX(height) AS maxheight FROM usertbl GROUP BY addr
) AS subquery;

continue문?

이 명령문을 둘러싼 반복문의 다음 반복으로 즉시 제어를 전달

 

for문에서 continue문

 

https://www.youtube.com/watch?v=QunYrLC-GBM&list=PLTFRwWXfOIYBmr3fK17E0VhKPyYrGy75z&index=26

 

https://www.youtube.com/watch?v=QunYrLC-GBM&list=PLTFRwWXfOIYBmr3fK17E0VhKPyYrGy75z&index=26

 

 

while문에서 continue문

후위 연산자를 잘 보자

 

 

switch문에서 continue문

'Study > C#' 카테고리의 다른 글

[C#] 메서드 매개 변수  (0) 2024.05.28
[C#] 메서드 정의 및 호출  (0) 2024.05.28
[C#] break  (0) 2024.05.27
[C#] 반복문 while문  (0) 2024.05.27
[C#] 반복문 for문  (0) 2024.05.27

break문

 

배치된 시점에서

가장 가까운 바깥쪽 루프 또는 switch 문을 종료

제어는 종료된 문 뒤의 문으로 전달됨(있는 경우)

 

 

for문에서 break;문

https://www.youtube.com/watch?v=3IbXxS6cu6M&list=PLTFRwWXfOIYBmr3fK17E0VhKPyYrGy75z&index=25

 

이중 for문에서 break문

https://www.youtube.com/watch?v=3IbXxS6cu6M&list=PLTFRwWXfOIYBmr3fK17E0VhKPyYrGy75z&index=25

 

https://www.youtube.com/watch?v=3IbXxS6cu6M&list=PLTFRwWXfOIYBmr3fK17E0VhKPyYrGy75z&index=25

 

 

while문에서 break문

 

https://www.youtube.com/watch?v=3IbXxS6cu6M&list=PLTFRwWXfOIYBmr3fK17E0VhKPyYrGy75z&index=25

 

switch문에서 break문

 

https://www.youtube.com/watch?v=3IbXxS6cu6M&list=PLTFRwWXfOIYBmr3fK17E0VhKPyYrGy75z&index=25

'Study > C#' 카테고리의 다른 글

[C#] 메서드 정의 및 호출  (0) 2024.05.28
[C#] Continue문  (0) 2024.05.27
[C#] 반복문 while문  (0) 2024.05.27
[C#] 반복문 for문  (0) 2024.05.27
[C#] 선택문 switch  (0) 2024.05.27

while문?

지정된 부울 식이 true로 계산되는 동안 문또는 문 블록을 실행

 

루프를 실행하기 전에 부울 식이 평가되기 때문에

while 루프는 0번 이상 실행된다.

 

 

문법(syntax)

while(부울 식)

{

}

 

 

※for문 과 비슷하게 부울 식이 참인지 확인 후 블록을 실행하는 검토방식 반복

 부울 식이 false이면 반복 종료

 

https://www.youtube.com/watch?v=qhKokHzgTjE&list=PLTFRwWXfOIYBmr3fK17E0VhKPyYrGy75z&index=24

'Study > C#' 카테고리의 다른 글

[C#] Continue문  (0) 2024.05.27
[C#] break  (0) 2024.05.27
[C#] 반복문 for문  (0) 2024.05.27
[C#] 선택문 switch  (0) 2024.05.27
[C#] 선택문 if문  (0) 2024.05.27

반복문?

 

다음 명령문은 명령문 또는 명령문 블록을 반복적으로 실행

 

for문

지정된 부울 식이 true로 계산되는 동안 문 도는 블록 실행

 

문법

 

for(초기화; 조건; 반복자)

{

}

 

초기화?

루프로 유입되기 전에 한 번만 실행되는 초기화 섹션

선언된 변수는 for문 외부에서  접근할 수 없다.

 

조건?

루프의 다음 반복을 실행할지 여부를 결정

결과가 true이거나 없으면 다음 반복이 실행되고, false면 루프 종료

조건 섹션은 부울 식이어야 한다.

 

반복자?

루프의 본문을 실행할 때마다 수행되는 작업을 정의

반복자 섹션에는 세미클론(;)이 없다.

 

https://www.youtube.com/watch?v=b5TRuFKlNKk&list=PLTFRwWXfOIYBmr3fK17E0VhKPyYrGy75z&index=23

 

 

 

'Study > C#' 카테고리의 다른 글

[C#] break  (0) 2024.05.27
[C#] 반복문 while문  (0) 2024.05.27
[C#] 선택문 switch  (0) 2024.05.27
[C#] 선택문 if문  (0) 2024.05.27
[C#] 논리 연산  (0) 2024.05.26

 

https://blog.naver.com/h333j333/221132851951

 

[IT상식]키보드의 특수문자 이름(명칭)을 정확히 알아볼까요? (`~!@#$%^&*()_+-=[]{ } ;':"<>?/.,\|)-IT강

키보드의 특수문자 이름(명칭)-PDF자료 제공안녕하세요? 엑셀과 업무 생산성 향상 프로그램들...

blog.naver.com

 

'Study > CS' 카테고리의 다른 글

[CS] 변수와 값, 메모리에 담기는 과정  (0) 2024.05.23
[CS] 메모리  (0) 2024.05.23

switch문?

 

지정된 일치 표현식을 기반으로 조건 중 하나의 코드를 실행

 

 

https://www.youtube.com/watch?v=1PJ3d3vYm64&list=PLTFRwWXfOIYBmr3fK17E0VhKPyYrGy75z&index=22

 

레이블이란?

 

레이블(Label)은 프로그래밍에서 특정 코드 블록의 위치를 가리키는 이름

이것은 보통 제어문(조건문, 반복문 등) 내에서 사용되며,

해당 위치로 프로그램의 실행을 이동시키는 데 사용된다

 

switch문은 하나 이상의 case 블록 및 기본 블록과 쌍을 이룬다.

https://www.youtube.com/watch?v=1PJ3d3vYm64&list=PLTFRwWXfOIYBmr3fK17E0VhKPyYrGy75z&index=22

 

일치 표현식 값과 일치하는 값에 대해 case 코드 블록이 실행된다.

 

(즉 , 표현식 값이 case 값과 일치하지 않으면 기본 옵션 코드가 실행된다.)

 

옵션이 여러 개 있을 때 if-else 문 대신 사용 가능

switch 를 사용하면 코드가 깨끗하고 읽기 쉬워 질 수 있다.

https://www.youtube.com/watch?v=1PJ3d3vYm64&list=PLTFRwWXfOIYBmr3fK17E0VhKPyYrGy75z&index=22

 

break 문은 switch 문을 종료

 

https://www.youtube.com/watch?v=1PJ3d3vYm64&list=PLTFRwWXfOIYBmr3fK17E0VhKPyYrGy75z&index=22
https://www.youtube.com/watch?v=1PJ3d3vYm64&list=PLTFRwWXfOIYBmr3fK17E0VhKPyYrGy75z&index=22

 

 

문득 열거형에 대해 다시 생각해보게 되었다.



https://www.youtube.com/watch?v=1PJ3d3vYm64&list=PLTFRwWXfOIYBmr3fK17E0VhKPyYrGy75z&index=22

'Study > C#' 카테고리의 다른 글

[C#] 반복문 while문  (0) 2024.05.27
[C#] 반복문 for문  (0) 2024.05.27
[C#] 선택문 if문  (0) 2024.05.27
[C#] 논리 연산  (0) 2024.05.26
[C#] 비교 연산  (0) 2024.05.26

+ Recent posts