본문 바로가기

전체 글395

1075. 정수 1개 입력받아 카운트다운 출력하기2 정수(1 ~ 100) 1개가 입력되었을 때 카운트다운을 출력해보자. 예시 int n; scanf("%d", &n); while(n!=0) { n=n-1; //n--; 와 같다. printf("%d", n); } 입력 정수 1개가 입력된다. (1 ~ 100) 출력 1씩 줄이면서 한 줄에 하나씩 0이 될 때까지 출력한다. 입력예시 5 출력 예시 4 3 2 1 0 import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int a = sc.nextInt(); while (a != 0){ a--; System.out.println(a); } } } 2023. 4. 19.
1074. 정수 1개 입력받아 카운트다운 출력하기1 정수(1 ~ 100) 1개가 입력되었을 때 카운트다운을 출력해보자. while(조건) { ... } 구조를 사용하자. 예시 int n; scanf("%d", &n); while(n!=0) { printf("%d", n); n=n-1; //n--;와 같다. } 입력 정수 1개가 입력된다. (1 ~ 100) 출력 1씩 줄이면서 한 줄에 하나씩 1이 될 때까지 출력한다. 입력예시 5 출력 예시 5 4 3 2 1 import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int a = sc.nextInt(); while (a != 0){ System... 2023. 4. 18.
4월 18일 Java - 객체지향 추상화, 인터페이스, final제어자 다형성(Polymorphism) 1) 메소드의 다형성 - 오버로드(같은 이름의 여러 메소드) 2) 참조변수의 다형성 - 한 클래스의 참조변수로 여러 클래스의 인스턴스를 저장하는 것. 참조변수의 다형성은 상속관계에서만 나타남! 부모클래스의 참조변수로 자식클래스로 만든 인스턴스를 저장할 수 있다. 문형) 부모클래스명 참조변수 = new 자식클래스명(); 부모클래스의 이름은 빌릴 수 있지만, 본 내용은 자식이기 때문에 부모의 참조변수로는 사용에 제한이 있다.(본인 확인 필요) 부모클래스의 참조변수로는 부모클래스에 정의된 멤버만 사용 가능. 실제 사용 시에는 다시 원래의 형태로 복원해야 한다. 부모클래스의 참조변수에 저장하는 것 - up casting 원래의 인스턴스로 되돌리는 것 - down casting 클.. 2023. 4. 18.
4월 17일 Java - 객체지향의 특성 객체 지향의 특성 1. 캡슐화 2. 상속 3. 다형성 4. 추상화 캡슐화 속성과 기능을 한데 묶는 것. -> class를 작성하는 것. 정보 은닉 - 접근제어자를 사용하여 속성과 기능을 보호. 속성 : 객체가 가지고 있는 고유한 값 또는 처리할 수 있는 값.(변수) 기능 : 객체가 담당할 수 있는 역할을 제공하는 코드 묶음.(함수) 함수는 객체 안에 위치할 때 메소드라고 불린다. 상속(Inheritance) 부모의 형질을 자식이 물려받는 것. -> 기존에 작성된 클래스를 재사용하여, 새로운 클래스를 작성하는 것. 두 클래스는 조상(부모), 자손(자식) 관계를 형성.(계층화) - 자손 클래스는 조상 클래스의 모든 멤버를 상속받는다. (예외. 생성자와 private 멤버는 제외) - 자손의 멤버 개수는 조상.. 2023. 4. 18.
1073. 0 입력될 때까지 무한 출력하기2 정수가 순서대로 입력된다. -2147483648 ~ +2147483647, 단 개수는 알 수 없다. 0이 아니면 입력된 정수를 출력하고, 0이 입력되면 출력을 중단해보자. if(조건) { //코드블록 ...; } 구조를 사용하면 주어진 조건이 참인 경우만 코드블록 부분이 실행된다. 비슷하게 어떤 조건에 따라 반복적으로 실행시킬 때에는 if를 while로 바꾸기만 하면 while(조건) { //코드블록 ...; } 와 같은 방법으로 코드블록의 내용을 반복적으로 수행시킬 수 있다. 수행되는 과정은 1. 먼저 조건을 검사한다. 2. 코드블록을 실행한다. 3. 다시 조건을 검사한다. 4. 코드블록을 실행한다. ... 와 같이 주어진 조건이 참인 동안 계속적으로 반복 실행한다. 이렇게 while(조건){...}을.. 2023. 4. 17.
1072. 정수 입력받아 계속 출력하기 n개의 정수가 순서대로 입력된다. -2147483648 ~ +2147483647, 단 n의 최대 개수는 알 수 없다. n개의 입력된 정수를 순서대로 출력해보자. while( ), for( ), do~while( ) 등의 반복문을 사용할 수 없다. 예시 int n, m; scanf("%d", &n); reget: //레이블은 콜론( : ) 으로 끝난다. scanf("%d", &m); printf("%d\n", m); if(n-- != 0) goto reget; //reget:으로 이동, n의 값 1만큼 감소 입력 첫 줄에 정수의 개수 n이 입력되고, 두 번째 줄에 n개의 정수가 공백을 두고 입력된다. -2147483648 ~ +2147483647, 단 n의 최대 개수는 알 수 없다. 출력 n개의 정수를 한.. 2023. 4. 16.
1071. 0 입력될 때까지 무한 출력하기1 정수가 순서대로 입력된다. -2147483648 ~ +2147483647, 단 개수는 알 수 없다. 0이 아니면 입력된 정수를 출력하고, 0이 입력되면 출력을 중단해보자. while( ), for( ), do~while( ) 등의 반복문을 사용할 수 없다. 참고 goto 명령문을 사용하면 간단한 반복 실행을 만들 수 있다. 반복 실행 부분을 빠져나오기 위해(즉 무한 반복을 방지하기 위해) 반복 실행 되는 도중에 조건을 검사해야 한다. goto 이름: 이 명령은 이름: 이 작성된 곳으로 프로그램의 실행 흐름을 바꾸어 준다. "이름:" 과 같이 콜론(:)이 붙어있는 부분을 이름표(label, 레이블)라고 한다. 레이블은 특별한 선언 없이 사용할 수 있으며 언더바(_)나 영문자로 시작하면 된다. 레이블은 한 .. 2023. 4. 15.
1070. 월 입력 받아 계절 출력하기 월이 입력될 때 계절 이름이 출력되도록 해보자. 예 월 : 계절 이름 12, 1, 2 : winter 3, 4, 5 : spring 6, 7, 8 : summer 9, 10, 11 : fall 참고 swtich( ).. case ... break; 제어문에서 break;를 제거하면 멈추지 않고 다음 명령이 실행되는 특성을 이용할 수 있다. switch(a) { ... case 3: case 4: case 5: printf("spring"); break; ... } 로 작성하면, 3, 4, 5가 입력되었을 때 모두 "spring"이 출력된다. ** 12, 1, 2 는 어떻게 처리해야 할지 여러 가지로 생각해 보아야 한다. 입력 월을 의미하는 1개의 정수가 입력된다.(1 ~ 12) 출력 계절 이름을 출력한다.. 2023. 4. 14.
4월 14일 - 주소록 프로그램 구현 dao - 데이터와 연계, 저장 공간, Date Access Object 데이터 CRUD처리를 위한 객체, 저장소와 연결하여 데이터를 처리 C : 저장소 입력 메소드 R : 저장소의 데이터를 읽어오는 메소드 U : 저장소의 데이터를 수정하는 메소드 D : 저장소의 데이터를 삭제하는 메소드 dto - 데이터의 변수들을 묶어 놓은 것, DB테이블의 내용 그대로 가지고 옴 자료를 옮기는 역할 Dto view(콘솔 -> UI/UX html부분) - controller(순차적인 제어) - service(기능적인 제어) - dao - DB 일반적인 경우 참조변수를 사용할 경우 - return이 필요 참조 변수 - 인스턴스의 주소 값이 넘어와 데이터의 값이 바로 저장되기 때문에 return이 필요없음 public v.. 2023. 4. 14.
4월 13일 (2) Java - this, 생성자 오버로딩, 실습 this 란? 자바스크립트에서는 이벤트를 발생하는 요소, 자기 자신을 나타냄 인스턴스를 구별하기 위한 방법. 일종의 참조변수 인스턴스 자신의 주소를 스스로 저장하고 있음 (같은 클래스로 만들어진 인스터스가 많기 때문에) 1. 필드와 지역변수 구분을 위해 사용 this.color(필드) = color;(지역변수) 2. 생성자의 다른 이름 : this() 메소드 생성자는 new 뒤에서 한 번 밖에 호출하지 못하는데, 생성자를 호출해야하는 경우가 있다. 이럴 경우 this로 생성자를 호출한다. 생성자 오버로딩 생성자를 여러개 만들 수 있다.(보통은 여러 개 만들어서 사용하지 않는다.) 클래스의 이름으로 생성자의 이름은 정해져 있다. 매개변수, 자료형으로 구분 생성자 안에서 다른 생성자를 호출할 때 사용 생성자.. 2023. 4. 13.
1069. 평가 입력 받아 다르게 출력하기 평가를 문자(A, B, C, D, ...)로 입력받아 내용을 다르게 출력해보자. 평가 내용 평가 : 내용 A : best!!! B : good!! C : run! D : slowly~ 나머지 문자들 : what? 참고 조건/선택문을 복합적으로 구성해 출력할 수도 있지만, switch(정수값) { case 'A': //문자 'A'가 정수값 65('A'의 아스키 값)로 저장되기 때문에 가능하다. ...; break; case 'B': ...; break; case 'C': ...; break; default: ...; } 위와 같은 switch( ) ... case... break; 제어문을 사용할 수 있다. ** break; 를 사용하지 않으면 이후의 명령들도 계속 실행된다. default: 는 제시된 c.. 2023. 4. 13.
4월 13일 (1) Java - 기타 제어자, 생성자 문제가 일어났을 때 해결하는 방법 고민 초기값은 사용되지 않을 값을 넣은 것이기 때문에 아무런 값도 입력하지 않았을 때 어떻게 표현되게 할 것인지 고민해 보기 입출력용 장치(부품 클래스) InOutClass - Scanner 없이 입출력장치가능하게 만들기 package View; import java.util.Scanner; public class InOutClass { // 화면에 출력하거나 키보드로부터 값을 받는 기능을 제공하는 부픔 클래스 // 다른 클래스에서는 print와 Scanner를 사용하지 않고 이 클래스에서만 하도록 제한 // 제공 기능 // 1. 출력 : 한줄 출력과 두줄 출력 // 한줄 출력용 메소드, 화면은 문자열 public void olPrint(String str){ Syste.. 2023. 4. 13.