// SPDX-License-Identifier: GPL-3.0
pragma solidity >=0.8.2 <0.9.0;
contract Review1 {
// 이름, 생일, 번호를 담은 구조체 Student를 선언하고 Student들이 들어갈 수 있는 array students를 선언하시오.
struct Student{
string name;
uint birth;
uint number;
}
Student[] students;
// students에 Student를 넣을 수 있는 함수,
// n번째 학생을 반환해주는 함수,
// n번째 학생의 이름을 반환해주는 함수를 구현하세요.
function pushStudent(string memory _name, uint _birth, uint _number) public {
students.push(Student(_name, _birth, _number));
}
function getStudent(uint _n) public view returns(Student memory) {
return students[_n-1];
}
function getName(uint _n) public view returns(string memory) {
return students[_n-1].name;
}
}
contract Review2 {
// 이름 a, 번호 b, bytes2 c를 담은 구조체 D
struct D {
string a;
uint b;
bytes2 c;
}
// D형 변수 ddd를 선언하시오.
D ddd;
// ddd에 값을 부여하는 함수를 구현하시오.
function setDdd(string memory _a, uint _b, bytes2 _c) public {
ddd = D(_a, _b, _c);
}
// D가 들어가는 array D_list를 선언하시오.
// D_list 전체를 반환하는 함수,
// D_list 안에서 n번째 데이터를 반환하는 함수를 각각 구현하시오.
D[] D_list;
function getDlist() public view returns(D[] memory) {
return D_list;
}
function getNum(uint _n) public view returns(D memory) {
return D_list[_n-1];
}
}
// SPDX-License-Identifier: GPL-3.0
pragma solidity >=0.8.18;
contract Review3 {
// ABC라는 구조체 안에는 숫자형 a, 문자형 b, 문자형 array c가 들어있다.
struct ABC {
uint a;
string b;
string[] c;
}
// ABC가 들어가는 array ABCs를 구현하고
// ABCs에 ABC를 넣는 함수,
// 특정 ABC를 반환하는 함수
// ABCs 전체를 반환하는 함수,
// 특정 ABC의 c array를 반환받는 함수를 각각 구현하시오.
ABC[] ABCs;
function pushABC(uint _a, string memory _b, string[] memory _c) public {
ABCs.push(ABC(_a, _b, _c));
}
function getABC(uint _n) public view returns(ABC memory) {
return ABCs[_n-1];
}
function getABCs() public view returns(ABC[] memory) {
return ABCs;
}
function getC(uint _n) public view returns(string[] memory) {
return ABCs[_n-1].c;
}
}
같은 동작을 반복
어떠한 값을 받으면 같은 행동을 쭉 반복한다.
조건에 따라 다른 동작을 함
1이면 이렇게, 2이면 저렇게
들어온 값에 따라서 다른 행동을 한다.
길이가 정해져있는 배열은 push나 pop이 안된다. 이걸 사용하면 길이가 달라지니까!
push 대신
배열[n+1번째] = 배열에 집어넣을 값
이런 식으로 배열에 값을 집어넣어야 한다.
이렇게 하면 b배열에 순차적으로 값이 잘 들어온다.
이렇게 하면 b배열 맨 앞, 0번째 요소를 건너뛰고 값을 넣는다.
내일모레까지 비트코인 백서 읽어오기
가능한 오늘 1독!
오늘은 감기때문에 수업에 집중하기 너무 힘들었다ㅠㅠ
중간에 조퇴하고 병원에 다녀올까도 생각했는데
도저히 조퇴하면 안될 것 같아서.... 기를쓰고 버텼다.ㅋㅋㅋ
버티자. 버티고 보는 거야.