<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>msa4080 (가보자고)</title><link>http://blex.me/@msa4080</link><description>나를 위한 약속!</description><atom:link href="http://blex.me/rss/@msa4080" rel="self"/><language>ko</language><lastBuildDate>Thu, 11 Aug 2022 00:37:49 +0900</lastBuildDate><image><url>/resources/media/images/avatar/45/msa4080/atLQE.jfif</url><title>msa4080 (가보자고)</title><link>http://blex.me/@msa4080</link></image><item><title>PART2. 자바 언어 기본(2)</title><link>http://blex.me/@msa4080/part2-%EC%9E%90%EB%B0%94-%EC%96%B8%EC%96%B4-%EA%B8%B0%EB%B3%B82</link><description>&lt;ol start="4"&gt;
&lt;li&gt;데이터의 입력과 출력&lt;/li&gt;
&lt;/ol&gt;
&lt;pre&gt;&lt;code class="language-java"&gt;public class InuputNumber {
    public static void main(String[] args) {
        Scanner s = new Scanner(System.in);

        System.out.println(&amp;quot;첫 번째 숫자를 입력하세요?&amp;quot;);
        int first = s.nextInt();

        System.out.println(&amp;quot;두 번째 숫자를 입력하세요?&amp;quot;);
        int second = s.nextInt();

        int added = first + second;
        System.out.println(&amp;quot;두 숫자의 합은 &amp;quot; + added + &amp;quot; 입니다.&amp;quot;);
    }
}
&lt;/code&gt;&lt;/pre&gt;
&lt;ul&gt;
&lt;li&gt;먼저 사용자 입력을 받기 위해서는 Scanner 객체가 필요합니다.&lt;br&gt;
숫자를 입력받기 위해서 Scanner 클래스의 nextInt() 메서드를 호출합니다.&lt;br&gt;
우리가 주목해야 할 것은 first라는 변수에 내가 원하는 숫자를 입력받을 수 있다는 점입니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;pre&gt;&lt;code class="language-cpp"&gt;첫 번째 숫자를 입력하세요?
100
두 번째 숫자를 입력하세요?
200
두 숫자의 합은 300 입니다.
&lt;/code&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;code class="language-java"&gt;public class InputDuble {
    public static void main(String[] args) {
        Scanner s = new Scanner(System.in);

        System.out.println(&amp;quot;첫 번째 실수를 입력하세요.&amp;quot;);
        double first = s.nextDouble();

        System.out.println(&amp;quot;두 번째 실수를 입력하세요.&amp;quot;);
        double second = s.nextDouble();

        double added = first + second;
        System.out.print(&amp;quot;두 실수의 합은 &amp;quot; + added + &amp;quot; 입니다.&amp;quot;);
    }
}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;-&amp;gt;  실수는 s.nextDouble() 다음과 같이 표시함&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-java"&gt;public class InputString {
    public static void main(String[] args) {
        Scanner s = new Scanner(System.in);
        
        System.out.println(&amp;quot;이름을 입력하세요.&amp;quot;);
        String name = s.nextLine();

        System.out.println(&amp;quot;사는 곳을 입력하세요.&amp;quot;);
        String city = s.nextLine();

        System.out.println(city + &amp;quot;에 사는 &amp;quot; + name + &amp;quot;님 반갑습니다.&amp;quot; );
    }
}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;-&amp;gt; 문자열을 입력받을 때는 s.nextDouble() 다음과 같이 표시함&lt;/p&gt;
&lt;ol start="5"&gt;
&lt;li&gt;배열&lt;/li&gt;
&lt;/ol&gt;
&lt;ul&gt;
&lt;li&gt;배열의 기능
&lt;ul&gt;
&lt;li&gt;배열은 같은 타입에(예-int)의 데이터를 단일 변수에 저장할 수 있음&lt;/li&gt;
&lt;li&gt;배열은 인덱스로 접근할 수 있음&lt;/li&gt;
&lt;li&gt;배열은 한 번 정의하면 늘어날 수 없음(데이터 크기가 고정됨)&lt;/li&gt;
&lt;li&gt;배열은 다차원으로 정의할 수 있음&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;pre&gt;&lt;code class="language-java"&gt;public class ArrayInt {
    public static void main(String[] args) {
        int[] grades = {80, 95, 92, 70};

        System.out.println(&amp;quot;국어: &amp;quot; + grades[0]);
        System.out.println(&amp;quot;수학: &amp;quot; + grades[1]);
        System.out.println(&amp;quot;영어: &amp;quot; + grades[2]);
        System.out.println(&amp;quot;과학: &amp;quot; + grades[3]);

        double average = ((double)(grades[0] + grades[1] + grades[2] + grades[3])) / grades.length;

        System.out.println(&amp;quot;선아의 평균 점수: &amp;quot; + average);

    }
}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;-&amp;gt; average 변수는 0부터 3번까지의 데이터를 모두 더한 후 grades.length로 나눕니다. 앞의 예제와 다른 점은 과목의 수가 늘어나더라도 나누는 수를 변경하지 않아도 됩니다. 물론 개별 과목의 합을 구할 때 grades[0] ~ grades[3] 까지 각 변수를 사용하고 있지만 다음 장에서 배우는 for 문을 활용하면 이런 부분에서도 확장성을 확보할 수 있습니다.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;double 배열을 활용한 예제&lt;/li&gt;
&lt;/ul&gt;
&lt;pre&gt;&lt;code class="language-java"&gt;public class ArrayDouble {
    public static void main(String[] args) {
        double[] sensorData;
        sensorData = new double[] {
            1.0,
            2.2,
            3.1,
        };

        int firstIndex = 0;
        int lastIndex = sensorData.length -1;

        System.out.println(&amp;quot;첫 번째 센서 데이터: &amp;quot; + sensorData[firstIndex]);
        System.out.println(&amp;quot;마지막 센서 데이터: &amp;quot; + sensorData[lastIndex]);
        System.out.println(&amp;quot;센서 데이터 개수 : &amp;quot; + sensorData.length);
    }
}
&lt;/code&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;code class="language-cpp"&gt;첫 번째 센서 데이터: 1.0
마지막 센서 데이터: 3.1
센서 데이터 개수 : 3 
&lt;/code&gt;&lt;/pre&gt;
&lt;ul&gt;
&lt;li&gt;String 타입의 배열 활용 예제&lt;/li&gt;
&lt;/ul&gt;
&lt;pre&gt;&lt;code class="language-java"&gt;public class ArrayString {
    public static void main(String[] args) {
        String[] cities = new String[10];

        int idx = 0;

        Scanner s = new Scanner(System.in);
        System.out.println(&amp;quot;첫 번째 도시를 입력하시오.&amp;quot;);
        cities[idx++] = s.nextLine();

        System.out.println(&amp;quot;두 번째 도시를 입력하시오.&amp;quot;);
        cities[idx++] = s.nextLine();

        System.out.println(&amp;quot;세 번째 도시를 입력하시오.&amp;quot;);
        cities[idx++] = s.nextLine();
        s.close();

        System.out.println(&amp;quot;--------------------------&amp;quot;);
        System.out.println(&amp;quot;입력한 도시의 개수는 &amp;quot; + idx);
        System.out.println(&amp;quot;첫 번째 도시는 &amp;quot; + cities[0]);
        System.out.println(&amp;quot;마지막 도시는 &amp;quot; + cities[idx -1]);
    }
}
&lt;/code&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;code class="language-cpp"&gt;첫 번째 도시를 입력하시오.
서울 
두 번째 도시를 입력하시오.
대구
세 번째 도시를 입력하시오.
인천
--------------------------
입력한 도시의 개수는 3
첫 번째 도시는 서울
마지막 도시는 인천
&lt;/code&gt;&lt;/pre&gt;
&lt;ul&gt;
&lt;li&gt;2차원 배열 예제&lt;/li&gt;
&lt;/ul&gt;
&lt;pre&gt;&lt;code class="language-java"&gt;public class Array2D {
    public static void main(String[] args) {
            //1. 2차원 배열 정의
        int [][] grades = {
            {80, 95, 92, 70},   //jane
            {70, 99, 75, 100}   //mike
        };

            //2. 2차원 배열 요소 접근(예, grades[0][i])
        double sumJane = 0;
        for (int i=0; i &amp;lt; grades[0].length; ++i) {
            int grade = grades[0][i];
            sumJane += grade;
        }
        double averageJane = sumJane / grades[0].length;

            //3. for each를 활용한 2차원 배열 사용
        double sumMike = 0;
        for (int grade : grades[1]) {
            sumMike += grade;
        }
        double averageMike = sumMike / grades[1].length;

        System.out.println(&amp;quot;전체 학생수는 &amp;quot; + grades.length);
        System.out.println(&amp;quot;Jane의 평균 점수는 &amp;quot; + averageJane);
        System.out.println(&amp;quot;Jane의 평균 점수는 &amp;quot; + averageMike);
   }
}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;-&amp;gt; 2차원 배열이므로 grades[0][i]와 같이 접근합니다. [0]은 첫 번째 줄 {80, 95, 92, 70}을 의미하며 그중 i 번째 요소가 됩니다. 예를 들어 grades[0][0]은 80이고 grades[0][1]은 95가 됩니다.&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-cpp"&gt;전체 학생수는 2
Jane의 평균 점수는 84.25
Jane의 평균 점수는 86.0 
&lt;/code&gt;&lt;/pre&gt;
</description><pubDate>Thu, 11 Aug 2022 00:37:49 +0900</pubDate><guid>http://blex.me/@msa4080/part2-%EC%9E%90%EB%B0%94-%EC%96%B8%EC%96%B4-%EA%B8%B0%EB%B3%B82</guid></item><item><title>PART2. 자바 언어 기본(1)</title><link>http://blex.me/@msa4080/part2-%EC%9E%90%EB%B0%94-%EC%96%B8%EC%96%B4-%EA%B8%B0%EB%B3%B8</link><description>&lt;ol&gt;
&lt;li&gt;변수와 상수&lt;/li&gt;
&lt;/ol&gt;
&lt;ul&gt;
&lt;li&gt;변수를 사용하기 위해서는 변수를 선언해야 합니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;pre&gt;&lt;code class="language-java"&gt;package com.seona.java;

public class VariableBasic {
    public static void main(String[] args) {
        //1. 변수 선언
        int studentNum;
        String name;
        double gradejava;
        double gradeC;
        double avg;

        //2. 변수 정의(초기값)
        studentNum = 500;
        name = &amp;quot;Seon A Min&amp;quot;;
        gradejava = 4.0;
        gradeC = 3.8;
        avg = 0;

        //3. 연산(재정의)
        avg = (gradejava +gradeC)/2;
        name = &amp;quot;Min. Seona&amp;quot;;
        studentNum = 600;

        System.out.println(studentNum);
        System.out.println(avg);
    }
}
&lt;/code&gt;&lt;/pre&gt;
&lt;ul&gt;
&lt;li&gt;이번에는 변수의 선언과 정의를 한번에!&lt;/li&gt;
&lt;/ul&gt;
&lt;pre&gt;&lt;code class="language-java"&gt;package com.seona.java;

public class VariableUsage {
     public static void main(String[] args) {
        //1. 변수 선언과 정의를 한번에
        int studentNum = 500;
        String name = &amp;quot;Seon A Min&amp;quot;;
        double gradejava = 4.0;
        double gradeC = 3.8;
        double avg = 0;

        //2. 연산(재정의)
        avg = (gradejava+gradeC)/2;
        name = &amp;quot;Min, Seon A&amp;quot;;
        studentNum = 600;
    }
}
&lt;/code&gt;&lt;/pre&gt;
&lt;ul&gt;
&lt;li&gt;자바 언어를 포함한 일반적인 프로그래밍 언어에서는 변하지 않는 수를 상수라고 합니다.
변하는 부분이 적을수록 오류는 적어집니다.
고로 변동성을 최소화한다는 관점에서 상수는 필요한 만큼 충분히 넣어주는게 좋아여~~&lt;/li&gt;
&lt;/ul&gt;
&lt;pre&gt;&lt;code class="language-java"&gt;public class ConstantBasic {
    //1. 일반적 상수 정의 (기본 용법)
    static final double PI = 3.14159236; //원주율
    static final int MAX_COUNT = 100; //최대 개수
    static final String COLUM_STUDENT_NAME = &amp;quot;student_name&amp;quot;; //학생 이름 컬럼

public static void main(String[] args) {
    //2. 함수 내 상수 정의 (필요한 경우)
    final int MAX_INTEGER = Integer.MAX_VALUE;

    //3. 함수 내 상수 선언 (비추천)
    final char DEFAULT_GRADE;

    //상수는 선언과 정의가 분리되어 있으면 가독성이 떨어짐
    DEFAULT_GRADE = 'C';

    System.out.println(&amp;quot;상수 PI : &amp;quot; + PI);
    System.out.println(&amp;quot;최대 개수 : &amp;quot; + MAX_COUNT);
    System.out.println(&amp;quot;학생 이름 컬럼 : &amp;quot; + COLUM_STUDENT_NAME);
    System.out.println(&amp;quot;최대 int 값 : &amp;quot; + MAX_INTEGER);
    System.out.println(&amp;quot;기본 성적 : &amp;quot; + DEFAULT_GRADE);
    }
}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;-&amp;gt; 상수는 변하지 않는 값이므로 이름에 대문자와 언더스코어만 사용합니다.&lt;/p&gt;
&lt;p&gt;-&amp;gt; 상수에 static final 이라는 지시자가 붙어 있다면 함수 안에서만 정의하는 상수는 final만 가집니다.
static과 final 키워드에 대한 자세한 내용은 part5에서 공부하자구여&lt;/p&gt;
&lt;ol start="2"&gt;
&lt;li&gt;데이터 타입&lt;/li&gt;
&lt;/ol&gt;
&lt;pre&gt;&lt;code class="language-java"&gt;public class DataTypes {
    public static void main(String[] args) {
        //1. 정수형 데이터 타입
        int num = 100;
        long bignumber = 9303489;
        short s = 999;
        byte b = 0x03;

        //2. 실수형 데이터 타입
        double grade = 4.3;
        float param = 1.32f;

        //3. 문자형 데이터 타입
        char singleCharacter = 'a';
        String str = &amp;quot;HelloWorld!&amp;quot;;

        //4. 부울형 데이터 타입
        boolean isEnabled = true;
    }
}
&lt;/code&gt;&lt;/pre&gt;
&lt;ol start="3"&gt;
&lt;li&gt;연산자&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;① 산술 연산자 : 사칙연산과 모듈러 연산 등&lt;/p&gt;
&lt;p&gt;② 대입 연산자 : 변수에 값을 대입하거나 다른 연산자와 복합 동작&lt;/p&gt;
&lt;p&gt;③ 비교 연산자 :  두 변수의 크기를 비교&lt;/p&gt;
&lt;p&gt;④ 논리 연산자 : AND, OR 과 같은 논리 연산을 수행&lt;/p&gt;
&lt;p&gt;⑤ 비트 연산자 : 주로 16진수의 값을 좌측, 우측 시프트 연산&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;산술 연산자&lt;/li&gt;
&lt;/ul&gt;
&lt;pre&gt;&lt;code class="language-java"&gt;public class 산술연산자 {
    public static void main(String[] args) {
        int added = 100+200;
        int subtracted = 500-300;
        int multiplied = 10*20;
        double divided = 100/3;

        System.out.println(&amp;quot;덧셈 결과: 100+200 =&amp;quot; +added);
        System.out.println(&amp;quot;뺄셈 결과: 500-300 =&amp;quot; +subtracted);
        System.out.println(&amp;quot;곱셈 결과: 10*20 =&amp;quot; +multiplied);
        System.out.println(&amp;quot;나눗셈 결과: 10*20 =&amp;quot; +divided);

        int 몫 = 100/3;
        int 나머지 = 100%3;
        System.out.println(&amp;quot;몫: 100/3 =&amp;quot; +몫);
        System.out.println(&amp;quot;나머지: 100%3 =&amp;quot; +나머지);

        ++added;
        --subtracted;

        System.out.println(&amp;quot;증가: ++added =&amp;quot; +added);
        System.out.println(&amp;quot;감소: --subtracted =&amp;quot; +subtracted);
    }
}
&lt;/code&gt;&lt;/pre&gt;
&lt;ul&gt;
&lt;li&gt;대입 연산자&lt;/li&gt;
&lt;/ul&gt;
&lt;pre&gt;&lt;code class="language-java"&gt;public class 대입연산자 {
    public static void main(String[] args) {
        int studentNo = 100;
        String studentName = &amp;quot;Seon A Min&amp;quot;;
        double grade = 4.0;

        System.out.println(&amp;quot;학번: &amp;quot; + studentNo);
        System.out.println(&amp;quot;이름: &amp;quot; + studentName);
        System.out.println(&amp;quot;학점: &amp;quot; + grade);

        double v = 100;
        v+=3; System.out.println(&amp;quot;v+=3 : &amp;quot; + v);
        v-=3; System.out.println(&amp;quot;v-=3 : &amp;quot; + v); 
        v*=3; System.out.println(&amp;quot;v*=3 : &amp;quot; + v);
        v/=3; System.out.println(&amp;quot;v/=3 : &amp;quot; + v);
        v%=3; System.out.println(&amp;quot;v%=3 : &amp;quot; + v);
    }
}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;+= 연산자는 우변의 값을 더하고 값을 좌변으로 대입해주는 복합 동작을 수행합니다.
-= 연산자는 뺄셈과 대입을  함께하고, *= 연산자와 /= 연산자는 각각 우변과의 곱셈과 나눗셈을 수행한 후 결과를 좌변에 대입합니다. 마지막으로 %= 연산자는 나눗셈을 수행하며 나머지를 좌변에 저장합니다.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;비교 연산자&lt;/li&gt;
&lt;/ul&gt;
&lt;pre&gt;&lt;code class="language-java"&gt;public class 비교연산자 {
    public static void main(String[] args) {
    int a = 100;
    int b = 100;
    int c = 200;
    int d = 95;

    System.out.println(&amp;quot;a와 b는 같다? &amp;quot; +(a==b));
    System.out.println(&amp;quot;a와 c는 다르다? &amp;quot; +(a!=c));
    System.out.println(&amp;quot;c는 a보다 크다? &amp;quot; +(c&amp;gt;a));
    System.out.println(&amp;quot;a는 c보다 크다? &amp;quot; +(a&amp;lt;c));
    System.out.println(&amp;quot;a는 d 이상이다? &amp;quot; +(a&amp;gt;=d));
    System.out.println(&amp;quot;a는 c 이하이다? &amp;quot; +(a&amp;lt;=c));
    }
}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;-&amp;gt; 모두 true 랍니당&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;논리 연산자&lt;/li&gt;
&lt;/ul&gt;
&lt;pre&gt;&lt;code class="language-java"&gt;public class 논리연산자 {
    public static void main(String[] args) {
    int a = 4;
    boolean inTheMiddle = 3&amp;lt;a &amp;amp;&amp;amp; a&amp;lt;5;
    boolean isNaturalNumber = a&amp;gt;0 || a==0;
    boolean isPositive = !(a&amp;lt;0);

    System.out.println(&amp;quot;a는 3보다 크고 5보다 작다? &amp;quot; +inTheMiddle);
    System.out.println(&amp;quot;a는 자연수이다? &amp;quot; +isNaturalNumber);
    System.out.println(&amp;quot;a는 양수이다? &amp;quot; +isPositive);
    }
}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;-&amp;gt; 모두 true 입니다.&lt;/p&gt;
&lt;p&gt;-&amp;gt; AND(&amp;amp;&amp;amp;), OR(||), NOT연산자(!)&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;비트 연산자&lt;/li&gt;
&lt;/ul&gt;
&lt;pre&gt;&lt;code class="language-java"&gt;public class 비트연산자 {
    public static void main(String[] args) {
    //비트 AND(&amp;amp;)
    int a = 0x0A; //1010
    int mask1 = 0x01; //0001
    int mask2 = 0X02; //0010
    System.out.println(&amp;quot;16진수 a의 첫 번째 자리수는? &amp;quot; +(a&amp;amp;mask1));
    System.out.println(&amp;quot;16진수 a의 두 번째 자리수는? &amp;quot; +(a&amp;amp;mask2));

    //비트 OR(|)
    System.out.println(&amp;quot;7(111) OR 16(10000) = &amp;quot; +(7|16));
    System.out.println(&amp;quot;8(1000) OR 15(1111) = &amp;quot; +(8|15));
    }
}
&lt;/code&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;code class="language-cpp"&gt;16진수 a의 첫 번째 자리수는?  0
16진수 a의 두 번째 자리수는?  2
7(111) OR 16(10000) =  23
8(1000) OR 15(1111) =  15
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;img class="lazy" data-src="/resources/media/images/content/2022/8/10/202281023_HmGHz1rGRvEoojWa8gGA.jpg" src="/resources/media/images/content/2022/8/10/202281023_HmGHz1rGRvEoojWa8gGA.jpg.preview.jpg" alt=""&gt;&lt;/p&gt;
</description><pubDate>Mon, 08 Aug 2022 22:50:46 +0900</pubDate><guid>http://blex.me/@msa4080/part2-%EC%9E%90%EB%B0%94-%EC%96%B8%EC%96%B4-%EA%B8%B0%EB%B3%B8</guid></item><item><title>PART1. 자바 입문</title><link>http://blex.me/@msa4080/part1-%EC%9E%90%EB%B0%94-%EC%9E%85%EB%AC%B8-1</link><description>&lt;pre&gt;&lt;code class="language-JAVA"&gt;package seona.jjang;

public class seonajjang{
    public static void main(String[] args) {
        System.out.println(&amp;quot;Seona jjang!&amp;quot;);
    }
}
&lt;/code&gt;&lt;/pre&gt;
&lt;ol&gt;
&lt;li&gt;&lt;p&gt;패키지를 선언한 경우 해당 폴더에 위치할 것
seona/jjang/ 폴더 만들어서 사용했음&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;public class의 이름과 자바 파일의 이름은 꼭 동일할 것.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;main() 함수는 특정 클래에 포함되어야하며 public static void 형을 가질 것.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;System.out.println() 함수 사용하여 출력.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;
</description><pubDate>Tue, 12 Jul 2022 23:31:07 +0900</pubDate><guid>http://blex.me/@msa4080/part1-%EC%9E%90%EB%B0%94-%EC%9E%85%EB%AC%B8-1</guid></item></channel></rss>