728x90
수업내용 정리 (Java)
1. 조건문_if (복습)
// 문제1) 입력받은 수에 따라 양수, 음수, 0 출력
System.out.print ("숫자 입력> ");
int sum = sc.nextInt();
if (sum > 0) {
System.out.println(sum+": 양수");
}else if (sum < 0) {
System.out.println(sum+": 음수");
}else {
System.out.println(sum);
}
- 입력받아올 식을 까먹었다. sc.nextInt();
// 문제2) 입력받은 수에 따라 3의 배수, 5의 배수, 3과 5의 배수, 둘 다 아님 출력
System.out.print("숫자 입력> ");
int num = sc.nextInt();
if(num%15==0) {
System.out.println(num+": 3과 5의 배수입니다.");
}else if(num%3==0) {
System.out.println(num+": 3의 배수입니다.");
}else if(num%5==0) {
System.out.println(num+": 5의 배수입니다.");
}else {
System.out.println(num+": 둘 다 아님");
}
2. 반복문_for (복습)
// 문제1) 1~100까지의 합 출력
int sum = 0;
for(int i=1; i<=100; i++) {
sum+=i;
}
System.out.println(sum);
// 문제2) 1~100까지 3의배수개수, 5의배수개수, 3과5의배수개수 출력(0도 포함)
int sum3 = 0;
int sum5 = 0;
int sum15 = 0;
for(int i=1; i<=100; i++) {
if(i%3==0) {
sum3++;
}
if(i%5==0) {
sum5++;
}
if(i%15==0) {
sum15++;
}
}
System.out.println("3의 배수: "+sum3+" 개");
System.out.println("5의 배수: "+sum5+" 개");
System.out.println("3과 5의 배수: "+sum15+" 개");
// 문제3) 두개의 숫자를 입력받고, 첫번째 입력받은 수부터 두번째 입력받은 수까지의 합 출력
System.out.print("첫번째 숫자: ");
int num1 = sc.nextInt();
System.out.print("두번째 숫자: ");
int num2 = sc.nextInt();
int num12 = 0;
for(int i=num1; i<=num2; i++) {
num12 += i;
}
System.out.println(num1+"부터 "+num2+"까지의 합은 "+num12+"입니다.");
- 입력받아올 수를 이용하여 첫번째 수부터 두번째 수까지의 합을 출력하는걸 헤매다가 1번 문제를 보고 힌트를 받아 해결했다.
3. 자판기(while, switch) (복습)
Scanner sc = new Scanner(System.in);
boolean run = true;
int balance = 10000; //잔액
String list = "";
while(run) {
System.out.printf("======LOL상점======[잔액: %,d원]\n", balance);
System.out.println("1.도란검(1,000원) 2.링(1,200원) 3.방패(1,500원)\n4.충전 5.구매내역 0.종료");
System.out.print("메뉴 선택> ");
int menu = sc.nextInt();
switch(menu) {
case 1:
if(balance-1000>=0) {
balance -= 1000;
System.out.println("도란검 구매 완료");
list += "도란검\t1000\n";
}else {
System.out.println("잔액 부족!");
}
break;
case 2:
if(balance-1200>=0) {
balance -= 1200;
System.out.println("링 구매 완료");
list += "링\t1200\n";
}else {
System.out.println("잔액 부족!");
}
break;
case 3:
if(balance-1500>=0) {
balance -= 1500;
System.out.println("방패 구매 완료");
list += "방패\t1500\n";
}else {
System.out.println("잔액 부족!");
}
break;
case 4:
System.out.println("충전할 금액> ");
int money = sc.nextInt();
balance += money;
// balance += sc.nextInt(); 위 두 줄을 이렇게 한 줄로 줄여도 됨.
break;
case 5:
System.out.println("구매 상품\t가격");
System.out.println("============");
System.out.println(list);
break;
case 0:
run = false;
break;
default:
System.out.println("없는 번호입니다.");
}
System.out.println();
}
System.out.println("프로그램 종료");
- String list = "";
- 위치를 while문 안에(int menu 밑에) 넣었더니 리스트가 뜨지 않았다.
- %,d: 세자리 수가 될 때마다 ,(콤마)를 넣어준다.
- ex) 1,000 / 1,000,000
- int money = sc.nextInt();
- balance += money;
- 이 식은 balance += sc.nextInt(); 식으로 줄일 수 있다.
4. 홈페이지 로그인 (복습)
Scanner sc = new Scanner(System.in);
boolean run = true;
String name = ""; //회원가입 이름
String id = ""; //회원가입 아이디
String pw = ""; //회원가입 비밀번호
while(run) {
System.out.println("=======홈페이지=======");
System.out.println("1.회원가입 2.로그인 0.종료");
System.out.print("메뉴선택> ");
int menu = sc.nextInt();
if(menu == 1) {
System.out.println("회원가입 할 이름 입력");
System.out.print("이름> ");
name = sc.next();
System.out.println("회원가입 할 아이디 입력");
System.out.print("아이디> ");
id = sc.next();
System.out.println("회원가입 할 비밀번호 입력");
System.out.print("비밀번호> ");
pw = sc.next();
System.out.println("회원가입 성공!");
}else if(menu == 2) {
System.out.print("아이디 입력> ");
String loginId = sc.next();
System.out.print("비밀번호 입력> ");
String loginPw = sc.next();
if(loginId.equals(id) && loginPw.equals(pw)) {
System.out.println(">로그인 성공!");
}else {
System.out.println(">로그인 실패");
System.out.println("아이디/비밀번호를 찾으시겠습니까?");
System.out.println("1.홈페이지로 2.아이디찾기 3.비밀번호찾기 4.종료");
System.out.print("메뉴선택> ");
int answer1 = sc.nextInt();
if(answer1 == 2) {
System.out.println("회원가입 시 입력하셨던 이름을 입력해주세요.");
System.out.print("이름 입력> ");
String loginName = sc.next();
if(loginName.equals(name)) {
System.out.println("회원님의 아이디는 [ "+id+" ]입니다.");
}else {
System.out.println("회원 정보가 없습니다.");
}
}else if(answer1 == 3) {
System.out.println("회원가입 시 입력하셨던 이름과 아이디를 입력해주세요.");
System.out.print("이름 입력> ");
String searchName = sc.next();
System.out.print("아이디 입력> ");
String searchId = sc.next();
if(searchName.equals(name) && searchId.equals(id)) {
System.out.println("회원님의 비밀번호는 [ "+pw+" ]입니다.");
}else {
System.out.println("회원 정보가 없습니다.");
}
}else if(answer1 == 4) {
run = false;
}else if(answer1 == 1) {
}else {
System.out.println("없는 메뉴입니다.");
}
}
}else if(menu == 0) {
run = false;
}else {
System.out.println("없는 메뉴입니다.");
}
System.out.println();
}
System.out.println("홈페이지 종료");
- 회원가입, 로그인, 종료에서 아이디찾기, 비밀번호 찾기를 임의로 추가했다.
- 비밀번호 변경도 추가해보려고 했는데, 수업 시간인데 너무 오래 걸릴 것 같아서 못했다.
5. 배열
- 하나의 변수에 여러가지 변수를 담고싶을 때 사용한다.
- 배열의 인덱스는 0부터 시작한다.
- 값이 없는 상태에서 인덱스만 생성할 수 있다.
// 배열을 쓰지 않았을 때
String name1 = "홍길동";
String name2 = "이순신";
name2 = "강감찬";
String name3 = "심청이";
System.out.println(name1);
System.out.println(name2);
System.out.println(name3);
// 배열을 사용했을 때
String[] name = {"홍길동", "이순신", "심청이"};
name[1] = "강감찬";
System.out.println(name[0]);
System.out.println(name[1]);
System.out.println(name[2]);
// 값이 없는 상태에서 인덱스만 생성
String[] names = new String[10];
names[0] = "장동건";
names[5] = "원빈";
- 없는 인덱스를 쓰려고 하면 에러가 난다.
- ex) name[3] = "강감찬";
- 없는 인덱스를 호출하려고 하면 에러가 난다.
- ex) System.out.println(name[3]);
- 변수 내의 인덱스 값은 (변수이름)[(인덱스 값)] = "(바꿀 값)"; 으로 바꿀 수 있다.
5-1) 예제
int[] a = new int[10];
int[] b = {1, 2, 3, 4, 5, 6, 7, 8, 9 ,10};
for(int i=0; i<b.length; i++) {
System.out.println(b[i]);
}
// b[3]까지만 출력
for(int i=0; i<3; i++) {
System.out.println(b[i]);
}
- int[] a 는 인덱스만 생성한 변수
- int[] b 는 인덱스에 값을 입력한 상태로 생성한 변수
- b.length 는 b의 길이, 즉 0부터 9까지 10을 가지고 있다.
//문제) 배열 합하기
int[] a = {12, 24, 3, 44, 56, 6, 77, 8, 9 ,10};
int sum = 0;
for(int i=0; i<a.length; i++) {
sum+=a[i];
}
System.out.println(sum);
- int[] a 안에 들어있는 값을 모두 더하는 식
- a.length 를 사용함으로 a 내에 있는 인덱스 수를 세지 않아도 된다.
전체 피드백
- 데이터를 받아올 식이나 그런 식들을 자주 잊는 것 같다. 기억하도록 노력하자!
- for문과 배열을 합쳤을 때 왜 이렇게 출력되는지는 알겠는데 설명을 하라고 하면 못하겠다...
728x90
'프로그래밍 > 수업일지' 카테고리의 다른 글
수업일지 6일차 (23/09/21) - Java (0) | 2023.09.21 |
---|---|
수업일지 5일차 (23/09/20) - Java (0) | 2023.09.20 |
수업일지 3일차 (23/09/18) - Java (1) | 2023.09.18 |
수업일지 2일차 (23/09/15) - Java (1) | 2023.09.15 |
수업일지 1일차 (23/09/14) - Java (0) | 2023.09.14 |