성장 기록 블로그🌴
@0914 자바 뿌시기 5일차! ( 자바 로그인 예제 , 자바 for문 , 자바 이중 for문 , 자바 별찍기 예제 , 자바 배열 실습 ) 본문
@0914 자바 뿌시기 5일차! ( 자바 로그인 예제 , 자바 for문 , 자바 이중 for문 , 자바 별찍기 예제 , 자바 배열 실습 )
wlswls2s 2022. 9. 14. 17:44< 자바 5일차 내용 >
●반복문 이용한 예제(로그인)
● 반복문 이용한 예제(로그인 시도)
● for문 문법 배우기
● 이중 for문 구구단
● 이중 for문 별찍기
● 배열의 개념
● 배열의 주소 공유
● 배열 실습1(문자 초기화)
● 배열 실습2(배열의 리스트 중 홀수들만 출력하고, 홀수의 개수까지 출력)
● 배열 실습3(배열의 리스트 중 가장 큰 값과 가장 작은 값 출력하기
◆ 자바 기본
개념정리
#
◆ for문

=> false가 되면 for문을 탈출함
◆ for문 실행 순서

=> 1. 초기화 구문 2. 검사 조건 3. for문 안 실행할 코드 4. 반복 후 작업 |
◆ 자바 반복문 비교
- while문 : 반복횟수가 정해지지않고 조건에 따라 달라지는 경우 > 조건이 true일때 실행하는 로직!
- do-while문 : 반복횟수가 정해지지 않고 조건에 따라 달라지는 경우 > do 안은 조건이 참이든 거짓이든 한번은 실행이 되는 로직!
- for문 : 일정한 반복 횟수가 정해진경우! 내가 반복 횟수를 알때 사용!! true일 때 실행 될 로직!
◆ 배열
● 배열은 하나의 공간임
● 배열은 같은 데이터의 타입만 넣을 수 있음
ex) int [] numbers = new int [4]; => 이 경우에는 int형의 데이터타입만 가진 것을 넣을 수 있음
● <양식 > 데이터타입[] 배열의 이름 = new 데이터타입 [배열의 크기];

◆ 배열의 구조
배열의 인덱스에 접근 => 배열 내의 값을 호출한다는 것과 같음
인덱스 번호로 호출 a[0], a[1] 이런식으로
호출 방법 : 배열의 이름 [인덱스번호]
배열의 인덱스는 0부터 시작
배열을 선언할때는 int array[]; 보다는 int [] array; 이것을 더 선호함
◆ 배열 접근 방법

=> new 생성자 키워드를 넣어 초기화
◆ 배열 찾아보기

변수명이 X 2. new int(4) -> new int[4] 3. new 하고 데이터타입 new avg[2] -> new int[2]; 4. 데이터타입이 안맞음 int와 float X 5. 처음에 바로 배열크기 넣을 수 없음 6. 맞음 7. 배열의 크기를 지정안해줌 8. 선언부에 배열의 크기를 넣을 수 없음 |
1. 로그인.java
import java.util.Scanner; public class Ex01_로그인 { public static void main(String[] args) { // TODO Auto-generated method stub Scanner sc = new Scanner(System.in); String id = "Hello"; String pw = "1234"; while(true) { //아이디와 비밀번호를 입력받기 // 아이디 user_id 변수에 입력받기 // 비밀번호 user_pw 변수에 입력받기 System.out.print("아이디를 입력해 주세요 >> "); String user_id = sc.next(); System.out.print("비밀번호를 입력해 주세요 >> "); String user_pw = sc.next(); // 조건문을 써서 로그인 성공시 "로그인 성공!" 출력 // 로그인 실패시 "아이디와 비밀번호가 잘못되었습니다." 출력 if(user_id.equals(id) && user_pw.equals(pw) ) { System.out.println("로그인 성공!"); break; } else { System.out.println("아이디와 비밀번호가 잘못되었습니다."); } } } } |

2. 로그인시도.java (내코드)
import java.util.Scanner; public class Ex02_로그인시도 { public static void main(String[] args) { // TODO Auto-generated method stub Scanner sc = new Scanner(System.in); String id = "Hello"; String pw = "1234"; //로그인이 실패했을 경우 계속 입력! // "Y"를 입력하면 아이디, 비밀번호 계속 입력! // 로그인이 성공하거나 "N"을 입력하면 프로그램 종료! //아이디와 비밀번호를 입력받기 // 아이디 user_id 변수에 입력받기 // 비밀번호 user_pw 변수에 입력받기 while(true) { System.out.print("아이디를 입력해 주세요 >> "); String user_id = sc.next(); System.out.print("비밀번호를 입력해 주세요 >> "); String user_pw = sc.next(); if(user_id.equals(id) && user_pw.equals(pw)) { System.out.println("로그인 성공!"); break; } else { System.out.println("아이디와 비밀번호가 잘못되었습니다."); System.out.print("계속 하시겠습니까? (Y/N) "); String trial = sc.next(); if(trial.equals("Y")) { System.out.print("아이디를 입력해 주세요 >> "); user_id = sc.next(); System.out.print("비밀번호를 입력해 주세요 >> "); user_pw = sc.next(); if(user_id.equals(id) && user_pw.equals(pw)) { System.out.println("로그인 성공!"); break; } else { System.out.println("아이디와 비밀번호가 잘못되었습니다."); System.out.print("계속 하시겠습니까? (Y/N) "); trial = sc.next(); if(trial.equals("Y")) { System.out.print("아이디를 입력해 주세요 >> "); user_id = sc.next(); System.out.print("비밀번호를 입력해 주세요 >> "); user_pw = sc.next(); } else if(trial.equals("N")) { System.out.println("종료합니다."); break; } else { System.out.println("잘못된 값을 입력하셨습니다."); } } } else if(trial.equals("N")) { System.out.println("종료합니다."); break; } else { System.out.println("잘못된 값을 입력하셨습니다."); } } } } } |
3. 로그인시도2선생님코드.java
import java.util.Scanner; public class Ex03_로그인시도선생님코드 { public static void main(String[] args) { // TODO Auto-generated method stub Scanner sc = new Scanner(System.in); String id = "Hello"; String pw = "1234"; //로그인이 실패했을 경우 계속 입력! // "Y"를 입력하면 아이디, 비밀번호 계속 입력! // 로그인이 성공하거나 "N"을 입력하면 프로그램 종료! //아이디와 비밀번호를 입력받기 // 아이디 user_id 변수에 입력받기 // 비밀번호 user_pw 변수에 입력받기 while(true) { System.out.print("아이디 : "); String user_id = sc.next(); System.out.print("비밀번호 : "); String user_pw = sc.next(); if(user_id.equals(id) && user_pw.equals(pw)) { System.out.println("로그인 성공!"); break; }else { System.out.println("아이디와 비밀번호가 잘못되었습니다."); System.out.print("계속 하시겠습니까? (Y/N) >> "); String answer = sc.next(); if(answer.equals("N")) { System.out.println("종료합니다."); break; } } } } } |

4. for문1.java (숫자 쭉 출력하기, I++, I--, 홀수 나열)
public class Ex04_for문1 { public static void main(String[] args) { // TODO Auto-generated method stub //for문 사용 //for(초기화 구문 ; 검사 조건 ; 반복 후 작업 ) // { 실행문장 // }; // 1. 21~ 57까지 출력 System.out.println("21~ 57까지 출력: " ); for(int i=21; i<58; i++) { System.out.print(i + " "); } System.out.println(" "); // 2. 96 ~ 53까지 출력 System.out.println(" 96 ~ 53까지 출력: "); for(int i= 96; i>=53; i--) { System.out.print(i + " "); } System.out.println(" "); // 3. 21 ~ 57까지 출력 ( 단, 홀수만 출력) System.out.println(" 21~ 57까지 출력: "); for(int i= 21; i<58; i+=2) { System.out.print(i + " "); } System.out.println(" "); } } |

5. for문2.java ( 두 정수를 입력받아 작은수부터 큰 수로 출력하기 – 조건문,for문 사용)
import java.util.Scanner; public class Ex05_for문2 { public static void main(String[] args) { // TODO Auto-generated method stub //100 이하의 두개의 정수를 입력받아 작은 수부터 큰 수까지 차례대로 출력하는 프로그램! Scanner sc = new Scanner(System.in); //두 개의 정수 입력받기 System.out.print("첫 번째 정수 : "); int num1 = sc.nextInt(); System.out.print("두 번째 정수 : "); int num2 = sc.nextInt(); //for문 사용(조건문 사용해서 어떤 정수가 더 큰지 판별) if(num1>num2) { for(int i=num2; i<=num1; i++) { System.out.print(i + " "); } } else { for(int i=num1; i<=num2; i++) { System.out.print(i + " "); } } } } |

6. for문2.java (두 수 사이의 총 합 출력)
import java.util.Scanner; public class Ex06_for문3 { public static void main(String[] args) { // TODO Auto-generated method stub //숫자 2개를 입력받아 두 수 사이의 총 합 출력하는 프로그램 Scanner sc = new Scanner(System.in); //두 개의 정수 입력받기 System.out.print("첫 번째 정수 : "); int num1 = sc.nextInt(); System.out.print("두 번째 정수 : "); int num2 = sc.nextInt(); int sum=0; if(num1<=num2) { for(int i=num1; i<=num2; i++) { sum +=i; } System.out.println("총 합: " + sum); } else { for(int i=num2; i<=num1; i++) { sum+=i; } System.out.println("총 합: " + sum); } } } |

# 양식1
7. for문3(구구단 단 입력받아 출력하기)
import java.util.Scanner; public class Ex08_for문5구구단 { public static void main(String[] args) { // TODO Auto-generated method stub //구구단 입력받기 Scanner sc = new Scanner(System.in); //단 입력받기 System.out.print("단 입력 : "); int num = sc.nextInt(); for(int i=1;i<10;i++) { System.out.println(num + "*" + i + "= " + (num*i)); } } } |


양식1 |
8. for문5.java (구구단 – 단이랑 곱해지는 수 입력받기)
import java.util.Scanner; public class Ex08_for문5구구단 { public static void main(String[] args) { // TODO Auto-generated method stub //구구단 입력받기 Scanner sc = new Scanner(System.in); //단 입력받기 System.out.print("단 입력 : "); int num = sc.nextInt(); //곱해지는 수 입력 System.out.print("곱해지는 수 입력 : "); int num2 = sc.nextInt(); for(int i=1;i<=num2;i++) { System.out.println(num + "*" + i + "= " + (num*i)); } } } |

9. 이중for문.java – 전체 구구단 출력
public class Ex09_이중for문1 { public static void main(String[] args) { //이중for문 사용해서 전체 구구단 출력하기 for(int k=2;k<10;k++) { System.out.println(k + "단"); for(int j=1;j<10;j++) { System.out.println(k + "*" + j + "= " + (k*j)); } System.out.println(" "); } } } |

10. 이중for문2구구단.java
public class Ex10_이중for문2구구단 { public static void main(String[] args) { //구구단 2단~ 9단 일렬(가로)로 출력하기 //이중for문 사용해서 전체 구구단 출력하기 for(int k=2;k<=9;k++) { System.out.print(k + "단 : "); for(int j=1;j<=9;j++) { System.out.print(" " + k + "*" + j + " = " + (k*j) + " \t"); } System.out.print("\n"); } } } |

11. 이중for문3.java (구구단 일렬로 출력하기)
public class Ex11_이중for문3 { public static void main(String[] args) { //이중for문 사용해서 전체 구구단 출력하기 for(int k = 1; k<=9; k++) { for(int i= 2; i<=9; i++) { System.out.print(i + "*" + k + "=" + (i*k) + "\t"); System.out.print(" "); } System.out.println(); } } } |
# 양식

12. 이중for문4.java (3행 4열의 별 찍기)
public class Ex12_이중for문4 { public static void main(String[] args) { //3행 4열의 별 짓기 for(int i=1;i<=3;i++) { for(int j=1;j<=4;j++) { System.out.print(" * " ); } System.out.println(); } } } |

13. 이중for문5.java (다양한 방법응로 별 찍기)
public class Ex13_이중for문5별찍기 { public static void main(String[] args) { // TODO Auto-generated method stub //오름차순 별 찍기 System.out.println("< 오름차순 별 찍기 > "); System.out.println(); System.out.println("하나씩 별 찍기"); for(int i=1;i<=1;i++) { System.out.print(" * " ); } System.out.println(); for(int i=1;i<=2;i++) { System.out.print(" * " ); } System.out.println(" "); for(int i=1;i<=3;i++) { System.out.print(" * " ); } System.out.println(" "); for(int i=1;i<=4;i++) { System.out.print(" * " ); } System.out.println(" "); System.out.println(); //----------------------------- System.out.println("한번에 별 찍기"); for(int i=1; i<=4; i++) { for(int j=1 ; j<=i; j++) { System.out.print(" * "); } System.out.println(); } //----------내림차순 별찍기--------- System.out.println(" < 내림차순 별 찍기 > "); for(int i=5;i>0;i--) { for(int j=0;j<i; j++) { System.out.print(" * "); } System.out.println(); } //----------오름차순 좌우대칭 별찍기--------- System.out.println(" < 오름차순 공백 넣어 별 찍기 > "); for(int j=4;j>=1;j--) { for(int i=0;i<=j;i++) { System.out.print(" "); } for(int i=0;i<=(4-j);i++){ System.out.print("*"); } System.out.println(); } } } |


14. 이중for문 별찍기.java (숫자를 입력받아 별 찍기)
import java.util.Scanner; public class Ex14_이중for문6별찍기심화 { public static void main(String[] args) { //----------숫자를 입력받고 그만큼 별 찍기 (오름차순)--------- Scanner sc = new Scanner(System.in); System.out.println(" < 숫자를 입력받고 입력한 숫자만큼의 별 찍기 > "); System.out.print(" 원하는 별찍기 개수 입력 : "); int star = sc.nextInt(); for(int k=star;k>0;k--) { for(int j=0;j<=(star-k);j++) { System.out.print(" *"); } System.out.println(); } } } |

15. 배열설명.java
package 배열; public class Ex01_배열설명 { public static void main(String[] args) { // 기존에 변수 생성할 때 선언부 생성부 따로 분리 가능 int a; a= 5; //배열 선언 및 생성 //데이터타입[] 배열의 이름 = new 데이터타입 [배열의 크기]; int [] array = new int[5]; //배열도 배열 생성 시 선언부 생성부 따로 분리 가능 int[] array1; array1 = new int[5]; //기본 데이터타입 변수 // int, double , long , char , boolean... // 레퍼런스 변수 // String , Scanner , Random ... String name = new String("예진"); System.out.println("배열의 주소 : " + array); //이걸 실행시키면 array의 값이 주소로 나옴 // stack 안에 array가 있고 -> heap을 참조함 -> array의 기본 값은 주소값이라고 생각하면됨 //배열의 인덱스에 접근 // 배열 내의 값을 호출 -> 인덱스 번호로 호출 // 배열의 이름 [인덱스번호] System.out.println(); //빈공간의 array 요소 출력해보기 System.out.println("<빈공간의 array 값 출력>"); System.out.println("array[0]: " + array[0]); System.out.println("array[1]: " +array[1]); System.out.println("array[2]: " +array[2]); System.out.println("array[3]: " +array[3]); System.out.println("array[4]: " +array[4]); // => array안에 아무것도 안넣고 호출할 시에는 0이나옴, int의 default값은 0 //<배열 공간에 값 대입> array[0] = 5; array[1] = 4; array[2] = 3; array[3] = 2; array[4] = 1; System.out.println(); //넣은 배열 값 요소 출력 System.out.println("<요소대입한 array 값 출력>"); System.out.println("array[0]: " + array[0]); System.out.println("array[1]: " +array[1]); System.out.println("array[2]: " +array[2]); System.out.println("array[3]: " +array[3]); System.out.println("array[4]: " +array[4]); System.out.println(); // 배열의 크기를 알 수 있는 키워드 -> .length System.out.println("배열의 크기 : " + array.length); //for문으로 배열 요소 일렬로 출력하기 System.out.print("array 배열 요소 출력 : " ); for(int i=0;i<array.length;i++) { System.out.print(array[i] + "\t"); } //배열의 선언 및 생성 주의사항 //1. 자바에서 배열을 선언할때는 배열의 크기를 지정해줄 수 없음 // int intarray[10]; => 이렇게 불가능함(컴파일 오류) , 배열의 크기를 지정할 수 없음 int[] array3 = new int[5]; //이렇게는 가능 int []array4; array4= new int[10]; //일케도 됨 // int intarray[]; 보다는 int []intarray 이렇게 표시하는 것을 더 선호함 } } |

16. 배열의주소공유.java
package 배열; public class Ex02_배열의주소공유 { public static void main(String[] args) { // 배열 -> 레퍼런스 변수 -> 주소값 저장 // 주소를 공유 -> 같은 공간을 공유함 int[] intArray = new int[5]; int[] myArray = intArray; intArray[2] = 3; System.out.println("intArray[2] = " + intArray[2] ); myArray[2] = 1; System.out.println("바뀐 intArray[2] : " + intArray[2]); //같은 array를 공유하기때문에 값을 바꾸면 바뀜 } } |

17. 배열실습1.java ( 문자 데이터를 담는 배열을 만들고, 초기화하여 리스트 출력하기)
package 배열; public class Ex03_배열실습 { public static void main(String[] args) { //1. 문자열 데이터를 담을 수 있는 배열 arrStr을 선언하세요. String [] arrStr ; //2. 문자열 데이터 10개를 담을 수 있도록 배열 arrStr을 생성하세요. arrStr = new String[10]; //3. 각각의 인덱스에 아래와 같은 문자로 초기화하세요. // 단어: JAVA , HTML , DB , PYTHON , CSS arrStr[0] = "JAVA"; arrStr[1] = "HTML"; arrStr[2] = "DB"; arrStr[3] = "PYTHON"; arrStr[4] = "CSS"; System.out.println("arrStr 배열 요소들 : "); for(int i=0;i<arrStr.length;i++) { System.out.print(arrStr[i] + "\t"); } } } |

18. 배열실습2.java (배열 안에 여러개의 숫자를 담고, 홀수만 골라서 출력하고 홀수의 개수 출력)
package 배열; public class Ex04_배열실습2 { public static void main(String[] args) { //1차원 정수형 배열을 선언한 후 임의의 값으로 초기화함 // 배열의 값 중 홀수인 값이 몇개인지 출력하는 프로그램을 작성하세요. //1. 임의의 값으로 배열 초기화 -> 자기 마음대로 값 넣기! int [] intArray = { 2, 3, 4, 5, 2, 45, 6, 5,7,9 }; int count=0; //2. 배열의 값 중에서 홀수만 출력, 홀수의 개수까지 출력 System.out.println("intArray에 들어있는 홀수는 "); for(int i=0;i<intArray.length; i++) { if(intArray[i] % 2 ==1) { System.out.print( intArray[i] + " "); count++; } } System.out.print( "입니다. "); System.out.println("홀수의 총 개수는 "+ count + "개 입니다."); } } |

19. 배열실습3.java (배열 리스트 중 가장 큰 값 찾기)
package 배열; public class Ex05_배열실습3 { public static void main(String[] args) { //1차원 정수형 배열을 선언한 후 임의의 값으로 초기화합니다. // 배열의 값 중 가장 큰 값을 찾아 출력하는 프로그램을 작성하세요. //1. 정수형 배열 초기화하기 int []numarray = {3,5,7,11,32,24,10,6}; //2. 가장 큰 값을 출력 int max = 0; //int max = numarray[0]; 해도됨 System.out.print("가장 큰 값은 : " ); for(int i=0; i<numarray.length; i++) { if(numarray[i]> max) { max = numarray[i]; } } System.out.println(max + "입니다." ); //3. 가장 작은 값을 출력 int min = numarray[0]; System.out.print("가장 작은 값은 : " ); for(int i=0; i<numarray.length; i++) { if(numarray[i] < min) { min = numarray[i]; } } System.out.println(min + "입니다." ); } } |

'AI & BigData 교육과정 > Java 관련' 카테고리의 다른 글
@0916 자바 뿌시기 7일차 ( 이차원 배열 예제 , 숫자 일렬로 출력 , 자바 버블정렬 , 자바 오름차순 정렬 ) (0) | 2022.09.16 |
---|---|
@0915 자바 뿌시기 6일차! ( 자바 배열 점수 입력받기 , 배열 채점 예제 , 별 출력 , for-each문 , 이차원배열 , 학생성적) (0) | 2022.09.15 |
@0913 자바 뿌시기 4일차! (0) | 2022.09.13 |
@자바 실습 코드 3일차 (0) | 2022.09.13 |
@0908 자바 뿌시기 3일차! ( 자바 명령어 , 자바 연산자 , 연산자 우선순위 , 자바 조건문 , 자바 if문 , 자바 switch문 ) (0) | 2022.09.13 |