성장 기록 블로그🌴

@0914 자바 뿌시기 5일차! ( 자바 로그인 예제 , 자바 for문 , 자바 이중 for문 , 자바 별찍기 예제 , 자바 배열 실습 ) 본문

AI & BigData 교육과정/Java 관련

@0914 자바 뿌시기 5일차! ( 자바 로그인 예제 , 자바 for문 , 자바 이중 for문 , 자바 별찍기 예제 , 자바 배열 실습 )

wlswls2s 2022. 9. 14. 17:44
728x90
< 자바 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)
{
//34열의 별 짓기


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이나옴, intdefault값은 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 + "입니다." );

}


}

728x90