jnk1m
Foliage IT
jnk1m
전체 방문자
오늘
어제
  • 분류 전체보기 (209)
    • Today I Learned (34)
    • Java (47)
    • Database (15)
    • [NHN Academy] (27)
    • Spring (47)
    • HTML + CSS + JavaScript (11)
    • JSP (3)
    • Node.js (10)
    • React Native (2)
    • 기타 (8)
    • 스크랩 (5)

인기 글

최근 글

티스토리

hELLO · Designed By 정상우.
글쓰기 / 관리자
jnk1m

Foliage IT

[NHN Academy]

Day2

2022. 7. 13. 00:14

리턴은 두가지 의미가 있다. 반환. 귀환.

프로그래밍에서 반환. 

호출자로 뭔가를 들고가는걸 뜻할때 return을 씀. (안 들고 갈때도 있음 void)

수학에서는 함수가 무조건 값을 반환해야 함. 프로그래밍을 하다보니 값을 반환 안할때도 있기 때문에 void가 생긴 것. 

 

값타입과 참조타입

 

스택의 특징: 선입선출.

값타입은 데이터를 직접 포함한다. 이게 제일 중요햔 개념. 스택 안에 데이터를 직접 포함한다. 

배열은 힙에 저장이 됨. 

public class valueType{} 이렇게만 써도 컴파일 됨. 다만 메인 함수가 없어서 실행은 안됨.

전산학의 기본.. 안되는 이유가 없으면 된다. 

메인 메서드를 정해주면 스태틱 메서드니까 

 

!!! C언어 포인터, 참조, 스태틱, 힙 무조건 이해하고 와야함.!!!

 

프로그래밍을 잘하는건 내가 생각하는걸 순차적으로 표현할 수 있는 기술 

 

1. ValueType.java

2. Person.java

3. Test

4. cascadingIf

 


1. ValueType

public class ValueType{
    int i;
    int[] array = {1,2,3};
    public static void main(String[] args){
        ValueType valueType = new ValueType();
        System.out.println(valueType.i);
        System.out.println(valueType.array); //int[] array면 nullpoint에러. 

        //힙 영역 안에 스택이 생셔서 i가 들어갈 공간과 array가 들어갈 공간을 할당한다. 
        /* 변수는 전부 스택 공간에 할당이 된다. i는 정수형

        array
        valueType.array하면 주소값을 출력.
        객체 생성을 안하고 출력하면 0
        교재 module 3에 8p 그림 보고 참고
        */
        valueType.doSth(); // 
    }
    public void doSth(){
        int[] array ={1,2,3};
        for (int i:array){
            System.out.println(i);
        }
        
    }
}

 

2. ValueType2

public class ValueType2 {
    int i; //전역변수
    void DoSth(){
        int i =0; //지역변수
        System.out.println(i);
        if(i<0){
            int j =1; //문 안에서 j 선언
            if(j==1){
                //int j = 1; //이건 안됨
            }
        }
        // do{
        //     int j=0;
        // }while(..i) //여기서 i를 또 선언하는건 됨
    }
    
}

 

3. Test

public class Test {
    public static void main(String[] args){
        String monthName = "January";
        int numOfDays=0;
        switch (monthName){
            case "January":
                numOfDays = 31;
                break;
            case "Febuary":
                numOfDays = 28;
                break;
            case "April":
            case "June":
            case "September":
            case "November":
                numOfDays =30;
                break;
            default:
                numOfDays = 31;
                break;
        }
        System.out.println(numOfDays);
    }
}

 

4. Person

public class Person {
    String name;
    int age;

    public int getName(){
        int customerName =1+10;
        return customerName;
    }
}

 

5. cascadingIf

public class cascadingIf {
    public static void main(String[] args){
        int subwayLine;
        subwayLine = 3;
        String color;
        if(subwayLine == 1){
            color = "NavyBlue";
        }
        else if (subwayLine == 2){
            color = "Green";
        }
        else if (subwayLine == 3){
            color = "Orange";
        }
        else if (subwayLine == 4){
            color = "Blue";
        }
        else if (subwayLine == 5){
            color = "Purple";
        }
        else 
            color = "White";

        System.out.println(color);
    }
   

    
}

 

6. iterationSatement

import java.util.ArrayList;

public class iterationStatement {
    public static void main(String[] args){
        //int i =0;

        // while (i<10){ //while문
        //     System.out.println(i);
        //     i++;
        // }
        
        // do{ //do문
        //     System.out.println(i);
        //     i++;
        // }while(i<10);

        for (int j=0; j<10; j++){
            System.out.println(j);
        }

        ArrayList<Integer> numbers = new ArrayList<Integer>();
        for(int i=2; i<12;i++){
            numbers.add(i);
        }
        for (int i:numbers){
            System.out.println(i);
        }

    }
    
}

 

7. Whatday

import java.util.Scanner;

public class Whatday {
    static int[] daysInMonth  = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
    static int[] daysInLeapMonth  = {31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
    enum MonthName{January, Feburary, March, April, May, June, July, August, September, October, Novermber, December}
    
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        try{
            System.out.println("Enter year: ");
            String line = scanner.nextLine();
            int yearNum = Integer.parseInt(line);
            System.out.println("Enter number between 1 ~365: ");
            line = scanner.nextLine();
            int dayNum = Integer.parseInt(line);

            boolean isLeapYear = (yearNum%4 ==0) && (yearNum % 100 != 0 || yearNum % 400 ==0);
            if(isLeapYear)
                System.out.println("It is Leap Year");
            else
                System.out.println(("It is not Leap Year"));

            
        
            int monthNum =0;

            if(isLeapYear){
                for(int days : daysInLeapMonth){
                    if(dayNum <= days){
                        break;
                    }
                    else{
                        dayNum -= days;
                        monthNum++;
                    }
                    if (dayNum < 1 || dayNum > 366){
                        throw new IllegalArgumentException("out of range");
        
                    }
                }
            }else{
                for(int days : daysInMonth){
                    if(dayNum <= days){
                        break;
                    }
                    else{
                        dayNum -= days;
                        monthNum++;
                    }
                    if (dayNum < 1 || dayNum > 365){
                        throw new IllegalArgumentException("out of range");
        
                    }
                }
            }
            

            MonthName temp = MonthName.values()[monthNum];
            String monthName = temp.toString();
            System.out.printf("%s, %d", monthName, dayNum);
        }
        catch(Exception e){
            e.printStackTrace();
        }
        finally{
            scanner.close();
        }

       /*
        //Calculate monthNum and dayNum using if statement 
        if (dayNum <= 31) {     // January
            monthNum=0;
            //dayNum -= 31;
            //System.out.println("1");
        }

        if (dayNum >=32 && dayNum <= 60) {     // Feburary 
            monthNum=1;
            dayNum -= 31;
            System.out.println("2");
        }

        if (dayNum >= 61 && dayNum <= 91) {     // March
            monthNum=2;
            dayNum -= 59;
        }

        if (dayNum >= 92 && dayNum <= 120) {     // April
            monthNum=3;
            dayNum -= 91;
        }

        if (dayNum >= 121 && dayNum <= 151) {     // May
            monthNum=4;
            dayNum -= 122;
        }

        if (dayNum >= 152 && dayNum <= 181) {     // June
            monthNum=5;
            dayNum -= 151;
        }
        /*
        if (dayNum >= 31) {     // July
            monthNum=6;
            dayNum -= 31;
        }

        if (dayNum >= 31) {     // August
            monthNum=7;
            dayNum -= 31;
        }

        if (dayNum >= 30) {     // September
            monthNum=8;
            dayNum -= 30;
        }

        if (dayNum >= 31) {     // October
            monthNum=9;
            dayNum -= 31;
        } 

        if (dayNum >=30){       //November
            monthNum=10;
            dayNum -= 30;
        }

        if(dayNum >=32){        //December
            monthNum=11;
            dayNum -= 32;
        }

       /*  select monthNum using switch statement 
       switch(monthNum) {
            case 0:
                monthName = "January";
                break;
            case 1:
                monthName = "Feburary";
                break;
            case 2:
                monthName = "March";
                break;
            case 3:
                monthName = "April";
                break;
            case 4:
                monthName = "May";
                break;
            case 5:
                monthName = "June";
                break;
            case 6:
                monthName = "July";
                break;
            case 7:
                monthName = "August";
                break;
            case 8:
                monthName = "September";
                break;
            case 9:
                monthName = "October";
                break;
            case 10:
                monthName = "November";
                break;
            case 11:
                monthName = "December";
                break;
            default:
                monthName = "Not Set";
                break;
        } */
        
    }
}

 

8. quiz80

import java.io.IOException;
import java.util.Scanner;

public class quiz80 {
    public static void main(String [] args){
        Scanner scanner = new Scanner(System.in);
        
        //1
        System.out.println("Q1");
        
        //int hour = 2; //그냥 대입한 버전 

        System.out.println("Enter num between 1~23: "); //입력 받는 버전
        String temp = scanner.nextLine();
        int hour = Integer.parseInt(temp);
        if (hour>=0 && hour < 24){
            System.out.println("hour: "+hour);
        }else{
            hour =0;
        }
        System.out.println("---------");

        //2
        System.out.println("Q2");
        
        do{
            System.out.println("Enter num between 1~23: ");
            temp = scanner.nextLine();
            hour = Integer.parseInt(temp);
        }while(hour >= 1 && hour <= 23);
        System.out.println("---------");
        

        //3
        System.out.println("Q3");
        for(int i = 0;i<5;i++){
            System.out.println("num for " + i);
            System.out.println("Enter num between 1~23: ");
            temp = scanner.nextLine();
            hour = Integer.parseInt(temp);
            if (hour>=0 && hour < 24){
                System.out.println("hour: "+hour);
            }else{
                System.out.println("hour is bigger than 24. Reset the num");
                i=5;
                hour =0;
            }
            System.out.println(hour);
        }
        System.out.println("---------");

        //4
        System.out.println("Q3");
        for(int i = 0;i<5;i++){
            System.out.println("num for " + i);
            System.out.println("Enter num between 1~23: ");
            temp = scanner.nextLine();
            hour = Integer.parseInt(temp);
            if (hour>=0 && hour < 24){
                System.out.println("hour: "+hour);
            }else{
                System.out.println("hour is bigger than 24. Reset the num");
                hour =0;
                System.out.println(hour);
                break;
            }
            System.out.println(hour);
        }
        System.out.println("---------");

        //5
        System.out.println("Q5");
        try{
            System.out.println("Enter num between 0 ~100");
            temp = scanner.nextLine();
            int percent = Integer.parseInt(temp);
            if (percent < 0 || percent >100){
                throw new Exception();
            }
        }catch(Exception e){
            System.out.println("Please enter num between 0~100");
            e.printStackTrace();
        }
        System.out.println("---------");
        
        //6
        try{
            System.out.println("Enter num between 0 ~100");
            temp = scanner.nextLine();
            int percent = Integer.parseInt(temp);
            System.out.println(percent);
            throw new IOException();
        }
        catch(IOException e){
            e.getMessage();
        }
        catch(Exception e){
            e.printStackTrace();
        }


    }
    
}
    '[NHN Academy]' 카테고리의 다른 글
    • [객체 지향 프로그래밍]
    • [배열]
    • Day3
    • Day1

    티스토리툴바