728x90
반응형

Backend/Java 26

12. [java] 참조 타입과 참조 변수, string 타입

지금까지 기본형 타입 변수들을 많이 사용해왔다. (int,char,double,boolean 등...) 하지만 그 사이에 한가지의 참조타입 변수도 사용해왔는데, 바로 String 변수이다. 기본형 타입 변수들에는 그 변수에 직접 값이 들어간다. 하지만 참조형 타입 변수들은 변수에는 주소값이 할당되고, 실제론 그 주소 안에 변수값이 들어가게 되어 그 주소값을 불러서 변수값을 찾아낸다. String s1 = "abcd"; 이렇게 저장을 하면 실제로 s1에는 "abcd"라는 문자열이 들어가는 것이 아닌, "abcd"란 문자열이 들어가있는 객체의 주소값을 저장한다는 얘기이다. 자바의 메모리 영역은 아래와 같이 나누어져 있다. 메소드 영역 : 클래스나 생성자들이 들어가게 되는 영역 힙 영역 : 객체와 배열이 들어..

Backend/Java 2021.06.17

11. [java] break, continue문 , label

저번시간엔 반복문에 대해서 배웠다. while에서 잠시 언급했지만 무한루프를 만들어줄수 있는데, 이럴경우에는 break문을 이용해서 루프를 벗어나게 해주어야 한다. break문 break는 상위에있는 for문이나 while문, 혹은 switch문의 실행을 중지시켜줍니다. 간단한 예시로 보면 int i = 0; while(true){ i++; if(i == 10) break; } 위의 while문은 조건식이 true라서 계속해서 반복되어 실행되어야 합니다. 하지만 while문 내부에 조건문 if문을 하나 만들었죠, 만약 i가 10이되면 break 한다. 라는 명령어를 만들어주어서, 반복문이 총 11번째까지 왔을 때 break되어 while문의 실행이 중지될겁니다. continue문 continue문은 반복..

Backend/Java 2021.06.15

10. [java] 반복문 for,while, do-while문

반복문이란 어떤 작업을 반복해서 수행하려고 할 때 그 코드를 반복해서 적어주는 것이 아닌, 몇회 반복하여 실행해라 라는 식으로 코드를 짤 수 있게 해주는 언어들이다. 자바에선 for과 while, do while문들을 사용한다. for문 for문같은 경우에는 원하는 횟수만큼 작업을 반복하기 쉽게 해주는 언어이다. for같은 경우 기초 모양은 외워주어야 하며 초기화식, 조건식, 증감식이 사용된다. 설명보단 코드와 실행결과를 보는것이 이해가 더 빠를것이므로 예제로 보여주겠다. package chapter4; public class forExam { public static void main(String[] args) { int sum1 = 0 ,sum2 = 0; for(int i = 0;i

Backend/Java 2021.06.15

9. [java] 조건문 if문, switch문

if문 조건식 결과에 따라 블록 실행 여부가 결정된다. 조건식에는 true/false 결과값을 가지는 비교연산자나 논리연산자 혹인 boolean 타입 변수가 사용된다. if문의 기본 구조는 if (조건식){ 실행문; 실행문; } 위와 같다. 만약 조건식이 참(true) 이면 아래의 실행문들을 실행하고, 그렇지 않고 거짓(false) 라면 실행하지 않고 넘어가게 되는 구조이다. if(조건문) 실행문; 만약 실행문이 한줄이라면 위와같이 쓸 수 있다. 한줄만 사용할 때 실행문을 아래줄로 내리면 가독성이 굉장히 불편해지고, 위와같이 우측으로 빼는경우도 실행문이 짧을 때만 사용해주고 어지간하면 중괄호{,} 를 이용해서 사용해주도록 하자. if문은 조건문이 만족할경우 실행하는 것이지만, 만약 if문을 만족하지 못할..

Backend/Java 2021.06.15

8. [java] 랜덤변수 생성하기 (Math.random,Random클래스)

자바에서 랜덤변수를 생성하는 방법에는 크게 2가지 방법이 있다. 우선 컴퓨터에선 난수를 쉽게 만들수가 없다. 정해진 입력에 따라 정해진 값을 주는게 컴퓨터의 선택이다. 따라서 컴퓨터는 매우 빠른 시간 (몇 밀리초)단위로 계속 다른값을 줌으로써 사람이 보기에는 임의의 값이 나오는 것처럼 보이게 한다. 따라서 시간에 따른 값을 주는 seed 값 이라는게 존재한다. 첫번째 방법부터 알아보자. 자바에선 Math.random() 함수를 제공해준다. 이 함수는 0이상 1미만의 구간에서 부동소숫점의 랜덤변수를 만들어준다. Math.random() 함수는 seed값을 조정할수가 없다. 우선 사용예시를 보겠다. package chapter4; public class random { public static void ma..

Backend/Java 2021.06.14

3. [java] 연산자 문제

package chapter3;import java.util.Scanner;/** * 두 정수를 입력받아 큰 수를 작은 수로 나눈 몫과 나머지를 출력하는 프로그램을 만들어 보자. * 임의의 두 정수 a, b에 대하여 ((a+b) + |a-b|)/2는 큰 수, ((a+b) - |a-b|)/2는 작은 수이다. 절대값을 반환하는 메소드는 Math.abs(숫자)이다. * 만약 -3의 절대값을 알아보고 싶으면 Math.abs(-3)이라고 쓰면 3이 반환된다. 이것을 이용하여 만들어보자. * 어떤 수를 0으로 나누는 것은 수학적으로 성립하지 않으므로 0을 입력하지 않는다고 가정하고 프로그램을 작성. */public class Ass1 { public static void main(String[] args) { ..

Backend/Java 2021.06.14

7-2. [java] i++, ++i 의 차이, 논리 연산자(논리 게이트)

저번시간에 간단하게 java의 연산자들에 대해 알아보았다. 그중 증감연산자 i++와 ++i의 차이와 논리 연산자들에 대해서 자세히 설명하지 않아서 이번시간에는 이것들에 대해 자세히 알아보도록 하겠다. 우선 증감연산자 i++ 와 ++i의 차이점이다. 간단하게 얘기하면 i++는 먼저 i의 값을 1 올려주고 그다음에 다른 연산을 수행하겠다는 얘기이다. 반면에 ++i 같은 경우는 다른 연산을 먼저 수행하고, 그 연산이 다끝나면 i의 값을 1 올려주겠다는 얘기이다. 간단한 예시를 들어보겠다. int x1 = 1; int x2 = 1; int R1 = ++x1 + 10; int R2 = x2++ + 10; 위와 같이 연산한다면 결과는 어떻게 될까?? 우선 x1과 x2의 값은 둘다 모두 2로 변해있을 것이다. R1의..

Backend/Java 2021.06.11

7. [java] 연산자 (Operator)

연산자 종류 연산자 피연산자 수 산출값 기능 산술 +, -, *, /, % 이항 숫자 사칙연산 및 나머지 계산 부호 +, - 단항 숫자 음수와 양수의 부호 문자열 + 이항 문자열 두 문자열을 연결 대입 =, +=, -=, *=, /=, %= 이항 다양 우변의 값을 좌변의 변수에 대입 증감 ++, -- 단항 숫자 1만큼 증가 / 감소 비교 ==, !=, >, =, 100 이란 연산을 하면 연산결과값은 false가 나올 것이다. 연산자들은 우선순위를 가지고 있다. 단항, 이항 ,삼항 연산자 순으로 우선순위를 가지고 연산하고, 산술, 비교, 논리 대입 연산자 순으로 우선순위를 가진다. 또한 단항, 부호, 대입 연산자를 제외한 모든 연산의 방향은 왼쪽에서 오른쪽으로 동작한다. 하지만 연산자들의 우선순위를 잘 몰..

Backend/Java 2021.06.11

2. [java] BaseBallGame 만들기

package Assignment;import java.util.Scanner;/** * 중복되지 않는 세 자리 숫자(정답)를 입력하고, * 세 자리 숫자를 최대 3번 입력받아 스트라이크, 볼, 아웃을 출력해준다. * 스트라이크 : 자리와 숫자가 일치하는 개수 * 볼 : 자리는 다르지만 숫자가 일치하는 개수 * 아웃 : 틀린 횟수 */public class BaseBallgame { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); int input = scanner.nextInt(); int A = input/100; int B = (input/10) % 10; int C = input % 1..

Backend/Java 2021.06.10

1. [java] 변수와 시스템 입력 이용하기

과제1 . 가로와 세로길이를 입력받아서 넓이와 둘레를 출력하기. package Assignment;/** * 실수형 변수 width(가로),height(세로),area(넓이),perimeter(둘레)를 선언 * Scanner 클래스를 이용해 가로, 세로 길이를 입력받아서 * 넓이와 둘레를 출력한다. */import java.util.Scanner;public class Assignment1 { public static void main(String[] args) throws Exception{ double width,height,area,perimeter; // 실수형 변수 선언 Scanner scanner = new Scanner(System.in); System.out.print("가로의 ..

Backend/Java 2021.06.10