목차
1. 복습하기
2. 배우기
3. 이해하기
1.복습하기
변수 = 값을 저장하는 이름 변수에는 값을 저장한다.
컴퓨터에서는 =을 equal의 뜻이 아닌, 대입을 의미한다. double float의 차이는 조금 더 큰 수나 정밀한 수를 저장할때는 double, 크지 않을 때는 float를 사용한다. char는 한글자를 저장할 수 있다. ''작은따옴표를 사용한다. 여러글자를 저장하면 오류가 난다. String은 여러 글자가 들어가지만, 앞에 대문자가 들어가므로 타입이 아니고 클래스다.
연산자 산술연산자 논리연산자 관계연산자
다음에 바로 클래스를 만들어주었는데,
package ex01;
public class TypeSample {
//접근제한자 리턴유무 메소드이름()
public void run() {
//변수타입
int num1 = 80;
float num2 = 80.5f;
double num3 = 80.5;
//문자
char str1 = 'A';
String str2 = "ABCD";
//불린
boolean isEnd = false;
System.out.println("num1=" + num1 + "\n");
System.out.println();
}
}
클래스 안에 이렇게 입력해 두고, Main클래스에
package ex01;
public class Main {
public static void main(String[] args) {
TypeSample a = new TypeSample();
a.run();
}
}
이렇게 만들어 두었다. 무조건 클래스를 만들었으면 , 메인단에서 클래스를 불러오는 객체를 만들어야하고, 그 객체를 실행시켜야 프로그램이 실행이 되는것이다.
이런식으로 클래스를 만들어두면, 복잡하지 않고 반복사용이 가능하다.
하지만 'static'를 선언해두면 객체를 만들지 않고도 사용이 가능하다.
package ex01;
public class Operation {
public static void run() {
//산술연산자 (*,%,+,-,/)
int kor = 90;
int eng = 87;
int mat = 54;
int sum = kor + eng + mat;
double avg = sum / 3.;
System.out.printf("국어: %d \n영어: %d \n수학: %d \n총점: %d \n평균: %.2f \n",kor,eng,mat,sum,avg);
}
}
여기서
삼항연산자라는걸 배웠음.
String pass = avg >= 70 ? "합격" : "불합격";
System.out.println("결과:"+pass);
이런식으로 하면 따로 if문 주지 않아도 합격 또는 불합격으로 나오게 된다.
String pass = (kor >= 60 && eng>=60 && mat>=60 && avg >= 70) ? "합격" : "불합격";
이런식으로 과락도 가능. 프로그램이 심플해져서 많이 사용한다.
2. 배우기
여기서
삼항연산자라는걸 배웠음.
String pass = avg >= 70 ? "합격" : "불합격";
System.out.println("결과:"+pass);
이런식으로 하면 따로 if문 주지 않아도 합격 또는 불합격으로 나오게 된다.
String pass = (kor >= 60 && eng>=60 && mat>=60 && avg >= 70) ? "합격" : "불합격";
이런식으로 과락도 가능. 프로그램이 심플해져서 많이 사용한다.
int count = 0;
if (kor < 60) count ++;
if (eng<60) count ++;
if (kor < 60) count ++;
System.out.println("누락과목수:" + count);
이런식으로 if문이 간단하게 한줄도 가능하다. 중괄호가 필요가 없을 경우에는 if문 안에 하나만 있을경우
package ex01;
import java.util.Scanner;
public class Condition {
public static void run() {
//if문 switch~case문
Scanner s = new Scanner(System.in);
System.out.print("점수:");
int grade = s.nextInt();
String result = "";
if (grade >= 90) {
if(grade>=95) {
result = "A+";
}else {
result = "A0";
}
}else if(grade>=80) {
result = "B";
}else if(grade>=70) {
result = "C";
}else if(grade>60) {
result = "D";
}else {
result = "F";
}
System.out.println("학점:"+result);
System.out.print("시간:");
int time = s.nextInt();
switch (time) {
case 6:
System.out.println("일어나세요!");
break;
case 9:
System.out.println("출근하세요!");
break;
case 12:
System.out.println("점심식사하세요!");
break;
case 18:
System.out.println("퇴근하세요!");
break;
default:
System.out.println("잘못입력했습니다.");
}
}//run
}//class
다시 복습. if 문과 switch case문 공부하기.
package ex01;
import java.util.Scanner;
public class Dimension {
public static void run() {
Scanner s = new Scanner(System.in);
String[] name = new String[22];
String[] address = new String[22];
int index = 0;
boolean run = true;
while (true) {
System.out.println("-----------------------");
System.out.println("1.주소등록 2.주소목록 0.종료");
System.out.println("-----------------------");
System.out.print("선택> ");
String menu = s.nextLine();
switch (menu) {
case "0":
System.out.println("시스템 종료");
run = false;
break;
case "1":
System.out.print("이름입력> ");
name[index] = s.nextLine();
System.out.print("주소입력> ");
address[index] = s.nextLine();
index++;
System.out.println(index +"명 입력완료.");
break;
case "2":
for(int i = 0; i<index;i++) {
System.out.printf("%d\t%s\t%s\n",i+1,name[i],address[i]);
}
break;
default:
System.out.println("다시입력");
}
}
}
}
package ex01;
public class Student {
//필드
private String sno;
private String sname;
private String address;
private String dept;
public String getSno() {
return sno;
}
public void setSno(String sno) {
this.sno = sno;
}
public String getSname() {
return sname;
}
public void setSname(String sname) {
this.sname = sname;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
public String getDept() {
return dept;
}
public void setDept(String dept) {
this.dept = dept;
}
//생성자 (생략가능하지만)
//객체를 생성하는것이다.
//object(instance)
//메서드
}
허. 충격적인 사실은 이클립스에서 자동으로 setlget메서드를 생성할 수 있다는것이다. source탭에서 generate 기능을 활용하면 입,출력메서드와 전체출력메서드도 만들 수 있다.
package ex01;
import java.util.*;
public class Address1 {
public static void run() {
Scanner s = new Scanner(System.in);
int count = 0;
boolean run = true;
List<Student> array = new ArrayList<>();
//아무것도 안생성된 어레이리스트.
while (run) {
System.out.println("---------------------------------------");
System.out.println("1.주소등록 2.주소목록 3.주소검색 4.주소수정 0.종료");
System.out.println("---------------------------------------");
System.out.print("선택> ");
String menu = s.nextLine();
switch (menu) {
case "0":
run =false;
System.out.println("프로그램 종료");
break;
default:
System.out.println("다시선택하세요.");
}// switch
} // while
}// run
}// class
arraylist 만들기.
List<꺽쇠에는 들어갈 리스트를 넣는다.>array = new ArrayList<>();
package ex01;
import java.util.*;
public class Address1 {
public static void run() {
Scanner s = new Scanner(System.in);
List<Student> array = new ArrayList<>();
Student stu = new Student("20231", "홍길동", "인천 서구 경서동");
array.add(stu);
// 이름이 같은 생성자가 여러번 쓰이는게 오버로딩
stu = new Student("20232", "심청이", "인천 부평구 계산동");
array.add(stu);
stu = new Student("20233", "장길산", "인천 서구 경서동");
array.add(stu);
boolean run = true;
// 아무것도 안생성된 어레이리스트.
while (run) {
System.out.println("----------------------------------------------");
System.out.println("1.주소등록 2.주소목록 3.주소검색 4.주소수정 5.주소삭제 0.종료");
System.out.println("----------------------------------------------");
System.out.print("선택> ");
String menu = s.nextLine();
switch (menu) {
case "0":
run = false;
System.out.println("프로그램 종료");
break;
case "1":
stu = new Student();
stu.setSno("2023" + (array.size() + 1));
System.out.println("학번>" + stu.getSno());
System.out.print("이름>");
stu.setSname(s.nextLine());
System.out.print("주소>");
stu.setAddress(s.nextLine());
array.add(stu);
// 인덱스 지정해줄 필요 없음. 바구니이기 떄문에.
System.out.println(array.size() + "명 등록완료!");
break;
case "2":
for (Student st : array) {
System.out.println(st.toString());
}
break;
case "3":
boolean find = false;
System.out.println("검색할이름>");
String search = s.nextLine();
for (Student st : array) {
if (st.getSname().equals(search)) {
// 찾았을때
System.out.println(st.toString());
find = true;
}
}
if (!find) {
System.out.println("학생을 찾지 못했어요.");
}
break;
case "4":
System.out.print("수정할이름>");
String update = s.nextLine();
for (Student st : array) {
if (update.equals(st.getSname())) {
find = true;
System.out.println("이름" + st.getSname());
System.out.println("주소" + st.getAddress());
}
}
case "5":
find = false;
System.out.print("삭제할이름>");
String delete = s.nextLine();
for (Student st : array) {
if (delete.equals(st.getSname())) {
find = true;
array.remove(st);
System.out.println("삭제가 완료되었습니다.");
break;
//리무브를 하면 어레이사이즈가 달라져서 포문이 안돌아감. 그래서 브레이크로 빠져나가야되는거임.
}
}if(!find) {
System.out.println("학생을 찾지 못했어요.");
}
break;
default:
System.out.println("다시선택하세요.");
}// switch
} // while
}// run
}// class
curd 란
create
update
read
delete를 의미하는데, 이것을 완료해야지만 리스트를 만들고 쓰고 수정할 수 있기 때문에 이 기능이 들어있는지 확인해야 한다.
'프로그래밍 > JAVA' 카테고리의 다른 글
2023-07-12 JAVA ORACLE (0) | 2023.07.13 |
---|---|
2023-07-04 학습일지 git (0) | 2023.07.04 |
2023-06-29 수업일지 (0) | 2023.06.29 |
2023-06-28 학습일지 (0) | 2023.06.29 |
2023-06-27 학습일지 (0) | 2023.06.28 |