본문 바로가기

Java20

[기초 자바] 피보나치 수열 package java0513; import java.util.Arrays; public class fibonacci { public static void main(String[] args) { long a, b, c; long arrNum[] = new long[30]; a = 1; b = 3; arrNum[0] = a; arrNum[1] = b; int w = 0; while(w 3 a b c 2 + 3 => 5 a b c 3 + 5 => 8 a와 b를 더해서 c값이 나왔습니다. 그러면 이제 기존의 a값은 b가 되고, b는 c가 되어 계속해서 연산이 이어져나가게 됩니다. 총 30개를 만들것이므로 while(w 2021. 5. 13.
[기초 자바] String class 우리가 말을 할 때, "네" 라고 간결하게 말하는 경우도 있지만 "알겠습니다" 라고 말하는 경우도 있듯이 자바에서 문자열을 사용할 수 있도록 제공해준 것이 바로 String 클래스입니다. 얼마 배우지는 않았지만 String 클래스는 아주 자주 쓰인다는 것을 일주일도 지나지 않아 알 수 있었습니다. 이러한 String을 사용할 때에 제일 처음으로 이해하고 넘어가야 하는 부분은 문자열을 생성하는 방식이 두 가지가 있다는 것입니다. 1. 문자열을 생성자의 매개변수로 만들어서 생성하기 예. String str1 = new String("안녕하세요"); 2. 이미 생성되어 있던 문자열 상수를 지목하기 예. String str2 = "hello"; 1번처럼 new 예약어를 사용해서 객체를 만들면, "안녕하세요"라는.. 2021. 5. 11.
[기초 자바]wrapper class wrapper는 기본 자료형을 감싸고 있는 클래스라는 뜻입니다. 대체 왜 감싸야하는 걸까요..그냥 풀어주면 안 되는 걸까요? boolean,byte, char, short, int , long, float, double까지 8가지 기본 자료형은 모두 wrapper class를 갖고 있습니다. 코드를 읽었을 때 구분하기 위해 wrapper class는 대문자로 시작하고 줄여서 쓰지 않습니다. boolean -> Boolean byte -> Byte char -> Character short -> Short int -> Int long -> Long float -> Float double -> Double 요렇게 됩니다. 왼쪽의 기본 자료형은 변수로 취급됩니다. int data = 5; 이런식으로 쓰이죠 객.. 2021. 5. 11.
[기초 자바] 중복되지 않는 랜덤숫자 쉽게 만들기 앞에서 세자리 랜덤숫자를 만들기가 어려워서 각 배열의 요소 하나하나 Math.random()으로 넣어줬는데 이번에는 좀 더 쉬운 방법을 알아보겠습니다. 스위치 개념을 이용하는 것입니다. boolean swit[]배열을 만들어줍니다. 크기는 45로 잡아봤어요, 왜냐면 로또라는게 45개 중에 6개만 맞추면 인생 대박나는 거잖아요(말처럼 쉽지 않지만) 즉 swit[] 배열은 0이나 1로 이뤄진 45개의 요소를 가지게 됩니다. 로또 5000원 어치만 사볼께요, 그러면 6개씩 5줄이 뽑힌 종이 한 장이 나올겁니다. 그런데 이 종이 안에 단 하나의 숫자도 중복이 없었으면 좋겠습니다. 그래서 int lotto[] = new int[30]을 함께 만들어줬어요. 이 안에는 30개의 정수가 들어갈 수 있겠네요. 30개의 .. 2021. 5. 10.
배열과 논리연산자를 이용한 야구 게임 기초 야구랑 정말 연관은 딱히 없는 것 같지만 자바를 처음 배울 때 많이들 연습하는 야구게임입니다. 컴퓨터가 랜덤으로 3자리 숫자를 만들어놓으면 우리가 하나씩 쳐가면서 스트라이크가 세개가 나올때까지 열심히 하는 것이죠. 물론 여러번 해봤는데도 완전히 맞추기는 어렵더라구요. (호두빵아 코드를 더 정교하게 짜봐...) 아무튼 ! r_num과 u_num을 짭니다. 크기가 3개인 배열로요. 여기서도 boolean이 등장하네요. 1byte밖에 되지 않지만 나름 쓸모가 많은 녀석 같습니다. 여기서는 초기화를 따로 해줬어요. 그냥요. 컴퓨터에게 랜덤한 숫자 3자리를 만들어보라고 시킵니다. 0번째 자리, 1번째 자리, 2번째 자리 각각 만들어줬어요. 444처럼 세 자리가 모두 같으면 안 되기 때문에 이를 방지하기 위해서 각.. 2021. 5. 10.
[기초 자바] 숫자 업다운해서 랜덤 숫자 맞추기 컴퓨터에게 계속 숫자를 주면서 이거 맞아? 아니면 이거야? 하면서 놀 수 있는 놀이를 소개하고자 합니다. 술자리에서 소주 병뚜껑에 있는 숫자를 기준으로 그것보다 작다 크다 하면서 걸린 사람이 술 먹는 게임 해보신 적 다들 있으시죠? 그것과 매우 유사합니다. 일단 첫번째로 우리가 컴퓨터에게 숫자를 던져줘야하기때문에 스캐너를 써먹어야겠습니다. Scanner sc = new Scanner(System.in)으로 sc를 만들어주면 이걸 이용해서 우리는 키보드로 숫자를 타닥타닥 적을 수 있게됩니다. 이번 케이스에는 두개의 숫자가 필요하겠죠? 바로 컴퓨터가 랜덤하게 만들어서 가지고 있는 숫자와 우리가 무작위하게 던져볼 숫자 두 개를 randNum, userNum으로 미리 선언했습니다. 그 다음으로는 boolean을.. 2021. 5. 10.
[기초 자바] 키보드 입력과 비트연산자 System.in.read(); read는 int형밖에 받지 못합니다.. 그렇다면 어떻게 처리를 해줘야 할까요? throw 처리를 통해 다른 클래스에서 실행하도록 합니다. (IOException 처리) System.in.read 함수는 byte 단위로 읽다보니 키보드로 정수나 실수 받을 때도 많고 단어 단위로 끊어서 해야할 경우도 있는 등 여러가지 요구사항을 처리하는데 불편한 점이 있습니다. 그래서 변환기를 사용하는데 여기서 Scanner를 변환기라고 생각하면 좋습니다. Scanner kb = new Scanner(System.in);//생성, 등록하기 소괄호 안에는 어디에서 갖고 올 건지를 표현합니다. import java.util.Scanner; //import는 패키지가 다를 때 써줍니다. 2021. 4. 8.
[기초 자바] 구구단 만들기 자바를 배우는 사람들이라면 기초 단계에서 누구나 한 번쯤 만들고 넘어갔을 구구단입니다. 구구단을 뗀지는 10년이 넘었는데 막상 구구단을 직접 만들어보려니 호락호락하지는 않습니다. 그러나 코드를 찬찬히 살펴보면서 뜯어봅시다. 첫번째 for문을 잘 들여다봅시다. 첫번째 for(초기식;조건식;증감식)을 보면 k가 2일때부터 10보다 작은 수(=9)가 될때까지 하나씩 늘어나게 됩니다. 2단 3단 할때의 앞 숫자가 k입니다. k가 2일때 printOneDan(2)가 되고 이는 밑에 static함수로 또 다시 묶여있습니다. 이런 식으로 9단까지 만들어지는 것입니다. 그렇다면 바로 밑에 static void printOneDan(int dan)을 봅시다. 여기서도 for문을 활용했는데 첫번째 for문과 마찬가지이지만.. 2021. 4. 8.
[기초 자바]public &private static 구조 확실히 알기 합을 구해서 반환하는 함수를 호출해봅시다. main01함수에서 우리는 30과 20을 더한 합을 알아내고 싶습니다. 그냥 int sum =30+50;하면 안 되는 건가? 하는 생각이 잠시 스쳐지나가지만 우리는 계산기를 쓰는게 아니라 알아서 계산을 하는 코드를 짜려고 하는 것이기 때문에 add함수를 활용해보려고 합니다. 1.첫번째 함수와 두번째 함수의 차이를 잘 살펴봅시다. public과 private이라는 차이점이 첫번째로 눈에 띕니다. public으로 지정해놓은경우 class내에서는 물론, class밖에서도 이 함수에 접근이 가능합니다. 그러나 private은 해당 클래스 안에서만 접근이 가능하다는 차이점이 있습니다. 2.static은 단어 본래의 뜻은 '고정된'이라는 뜻이 있습니다. stackoverf.. 2021. 4. 8.