생활코딩

Coding Everybody

입력과 출력

토픽 생활코딩 > 언어 > JAVA 입문 수업

수업소개

똑같은 결과를 출력하는 프로그램은 일회용입니다. 하지만 입력에 따라서 다른 출력 결과를 만들어주는 프로그램은 다양한 상황에서 힘을 발휘할 수 있습니다. 여기서는 재활용 가능한 프로그램을 만드는 방법을 살펴봅니다.

 

 

 

강의1

소스코드

변경사항

import javax.swing.JOptionPane;

import org.opentutorials.iot.DimmingLights;
import org.opentutorials.iot.Elevator;
import org.opentutorials.iot.Lighting;
import org.opentutorials.iot.Security;

public class OkJavaGoInHomeInput {

    public static void main(String[] args) {
		
		String id = JOptionPane.showInputDialog("Enter a ID");
		String bright = JOptionPane.showInputDialog("Enter a Bright level");
		
		// Elevator call 
		Elevator myElevator = new Elevator(id);
		myElevator.callForUp(1);
		
		// Security off 
		Security mySecurity = new Security(id);
		mySecurity.off();
		
		// Light on
		Lighting hallLamp = new Lighting(id+" / Hall Lamp");
		hallLamp.on();
		
		Lighting floorLamp = new Lighting(id+" / floorLamp");
		floorLamp.on();
		
		DimmingLights moodLamp = new DimmingLights(id+" moodLamp");
		moodLamp.setBright(Double.parseDouble(bright));
		moodLamp.on();

	}

}

 

 

 

강의2

이클립스 내에서 입력값(arguments)를 설정할 때 작은 따옴표로 동작하지 않으면 큰 따옴표를 이용해주세요. 
정정합니다.수업에서 표준적인 입력이라는 표현이 사용되고 있는데, 표준입력이라는 개념이 별도로 존재합니다. 따라서 이 수업에서 다루는 입력은 명령어로 실행되는 프로그램에 파라미터를 통해서 인자를 전달하는 방식이라고 표현해야 좀 더 정확합니다. 명령어로 실행되는 프로그램이 무엇인지는 뒤에서 더 정확하게 배우게 됩니다. 

소스코드

변경사항

import org.opentutorials.iot.DimmingLights;
import org.opentutorials.iot.Elevator;
import org.opentutorials.iot.Lighting;
import org.opentutorials.iot.Security;

public class OkJavaGoInHomeInput {

    // paramter, 매개변수
	public static void main(String[] args) {
		
		String id = args[0];
		String bright = args[1];
		
		// Elevator call 
		Elevator myElevator = new Elevator(id);
		myElevator.callForUp(1);
		
		// Security off 
		Security mySecurity = new Security(id);
		mySecurity.off();
		
		// Light on
		Lighting hallLamp = new Lighting(id+" / Hall Lamp");
		hallLamp.on();
		
		Lighting floorLamp = new Lighting(id+" / floorLamp");
		floorLamp.on();
		
		DimmingLights moodLamp = new DimmingLights(id+" moodLamp");
		moodLamp.setBright(Double.parseDouble(bright));
		moodLamp.on();

	}

}

 

댓글

댓글 본문
  1. juny_.0
    2024.11.09
  2. 24809 완
  3. 240523
  4. 코딩앤수학
    2024-05-06 완료
  5. 민태영
    2024.1.31 수강완료
  6. 김철흥
    2024.01.19
    완료!
  7. 집게사장
    2023.11.06 수강완료
    인자는 함수나 메서드에 전달 혹은 입력되는 값이나 데이터를 의미하며
    매개변수는 함수나 메서드에서 이러한 인자를 저장해 놓은 변수다.
  8. gonu
    2023.08.03
  9. 솜사탕
    2023.08.01 완료
  10. GodUser
    파라미터는 매개변수
    arguments 는 인자(인수)를 의미 하며

    인자는 내가 메소드 밖에서 가져오고싶은 데이터를 의미하며 그 데이터를 쓰기위해 담는 변수를 매개변수라고 하고 매개변수를 이용해 메소드안에서 그 데이터를 사용하는 것이다
  11. egoing
    수업을 따라가기 위해 Visual Studio Code (VSC)를 사용하시는 것은 문제가 없습니다. eclipse와 VSC의 기능은 많이 비슷하며, 두 편집기 모두 다양한 프로그래밍 언어와 툴을 지원합니다. 따라서 수업에서 사용하는 편집기와 VSC 사이에 큰 차이점은 없을 것입니다.

    그러나 VSC에서는 "Run Configuration"을 설정하는 방식이 eclipse와 조금 다릅니다. VSC에서 실행 구성을 설정하려면 다음 단계를 따르세요:

    1. Visual Studio Code를 실행하고 프로젝트를 여십시오.
    2. 좌측 메뉴에서 "Extensions" 아이콘을 클릭하거나 `Ctrl+Shift+X` 단축키를 사용하여 Extensions 뷰를 연 후, 'Code Runner' 확장을 검색하고 설치합니다.
    3. 설치가 완료되면, 상단 메뉴에서 'File' > 'Preferences' > 'Settings'를 차례대로 클릭합니다.
    4. 설정 창에서 왼쪽 메뉴에서 'Extensions'를 선택하고 'Code Runner'를 클릭합니다.
    5. 'Code-runner: Executor Map' 옵션을 찾아서 클릭한 다음, 해당 언어에 맞는 실행 구성을 설정합니다. 예를 들어, Java의 경우 다음과 같이 설정할 수 있습니다:

    ```
    {
    "java": "cd $dir && javac $fileName && java $fileNameWithoutExt"
    }
    ```

    이제 VSC에서 프로젝트를 실행할 때 'Run Code' 버튼을 사용하거나 `Ctrl+Alt+N` 단축키를 사용하여 코드를 실행할 수 있습니다.

    VSC에서 수업을 듣는 것이 불편하지 않다면 계속 사용하시면 됩니다. 그러나 eclipse의 특정 기능이 필요한 경우, 수업자료나 인터넷을 참조하여 VSC에서 유사한 기능을 찾아 사용하시면 됩니다.
    대화보기
    • everyday
      기존에 vsc가 깔려있어 그것으로 수업을 들어온 학생입니다. vsc에서는 run configuration은 찾지 못하였고, run을 클릭하면 (open/add) configurations가 있는것을 찾아 클릭해보았지만 화면과 비슷한 용도로 사용하기 위해서는 무엇을 해야하는지 잘 모르겠습니다. 개인적으로는 (물론 오래 한것도, 잘 아는것도 아니지만) 조금이라도 더 접해본 vsc가 조금은 더 편하다고 느껴서 여태까지는 이것으로 수업을 들어왔습니다. 영상에서 나오는 editor와 vsc가 지금보다도 더 많이 달라서 수업에 지장이 갈까요? 그리고 vsc에서 run configuration이 사용되는 부분은 어떻게 하면 되는지 알려주실 수 있을까요?
    • syk25
      Argument(입력값): 프로그램 사용자가 입력해야 하는 값
      Parameter(매개변수): 사용자의 입력값과 프로그램을 매개해주는 변수
      Argument와 parameter의 관계: argument를 미리 지정하면 parameter는 이를 프로그램에 매개하여 미리 입력값을 입력하게 되어 프로그램을 실행시킨다.
    • 박지수
      근데 첫번째 강의에서 왜 처음부터 double bright = ~~으로 더블로 받지 않는걸까요?
    • 당당
      2023.04.08
    • 밍구밍구
      완료
    • 왕날편
      1. input 팝업창으로 Input값 받기
      String 변수명 = JOptionPane.showInputDialog("팝업창 제목");
      2. String to double
      Double.parseDouble(변수명);
      3. Run Configuration의 Arguments에 값 큰따옴표로 구분해 넣고, args라는 Parameter를 통해 받을 수 있다.
      4. Arguments 값이 여러 개일 경우 args는 String[] 배열이므로 arg[index]로 골라쓸 수 있다.
      String id = args[0];
      String bright = args[1];
    • CODE
      학습완료
    • 찐옥수수
      23.03.11 완료
    • 태봉이
      20230202
    • 호크
      입력값을 받는 방법
      - showInputDialgog : 입력창을 띄워서 입력값을 받아서 사용
      - args : Run Configuration에서 입력한 parameter를 args 배열에 하나씩 받아서 사용
    • 비전공자의반란
      큰 따옴표로 바꾸니 정상작동 하네요 23-01-10 완
    • didit
      23.01.08
    • 개구리
      parameter, 즉 매개변수는 이름을 붙여주는 것이라고 해석했어요. 말씀하셨던 것처럼 코드는 나도 보고 남도 보는 거라 가독성이 중요하니까 이해를 도울 수 있도록 이건 이거예요라고 이름을 붙이는 개념 같아요.
      argument는 입력받을 입력값을 미리 설정해서 개발자 입장에서 여러가지를 테스트를 하기 편하게 해 주는 기능인 것 같네요.
    • 자바뿌시기
      22/12/31
    • 단추형아
      감사합니다 덕분에 해결했네요
      대화보기
      • Min Jupiter
        22.12.07
      • 성훈용
        parameter은 변수를 설정해 주는 것 입니다.
        예를들어서 알파벳 abcdef….xyz 을 적어야 한다고 할때 매번 처음부터 끝까지 적는 것은 너무 힘이 드니 편하게 a-z라고 줄여 놓는 것 입니다. 이렇게 되면 우리가 나중에 사용할때 편합니다. 어떻게 보면 우리가 자주사용하는 말의 경우 줄임말을 사용하는 것과 유사합니다.

        argument 는 parameter에 들어갈 값을 미리 설정해 두는 것 입니다.
        예를들어 나는 항상 엘레베이터를 타야하는데 우리집 현관문을 열게되면 바로 그냥 엘레베이터가 호출 됩니다. 이것도 어떻게 보면 자주 사용하는 엘레베이터 호출을 자동으로 미리 설정해두는 것이죠.

        저는 이렇게 해석했어요!
      • 화난 흰둥이
        221129
        arguments적을 때에 작은따옴표로 적으면 띄어쓰기대로 리스트를 읽어서 큰따옴표로 적으니 해결됨
      • 서우
        221020

        1. 정보입력한 팝업창 띄우기
        String 변수명 = JOptionPane.showInputDialog("Enter a 변수명");
        2. String을 double로 컨버팅하는 방법
        Double.parseDouble(변수명);
        3. input 종류, input 프로그램에 끌고 들어오는 것 익히기

        3. Arguments에 값 큰따옴표로 구분해 넣고, args라는 Parameter를 통해 받도록 하기
        4. Arguments 값이 여러 개일 경우 대괄호 안에 몇번째에 있는 값인지 구분하여 적기
        String id = args[0];
        String bright = args[1];
      • 보통사람 박코딩
        지금 배우는 하나하나의 퍼즐들이 모여서 나중에는 하나의 그림처럼 펼쳐지는 날이 오겠지
        할수있다
      • 자바자바
        String []args 는 문자열로만 채워진 배열을 의미한다
        run configuration을 사용해서 args 내부에 들어갈 값을 순서대로 채워넣을 수 있다.
        new란 무엇인가?
        argument는 audio, file과 같이 입력형태 중의 하나이며 프로그램과 프로그램을 사용하는 사용자를 이어주는 매개변수이다.
        args를 통해 사용자는 매번 팝업창에 입력값을 넣을 필요없이 값을 넣을 수 있다.
      • 후토마끼
        22.10.05
      • 코딩드림
        22.09.29
      • 가능해
        22.09.12
      • Asanagi
        configuration활용법에 대해 잘 배웠습니다.
      • economin
        수강완료
      • Lee Soyon
        String[] args 의미를 드디어 알고 가네요. 스트링타입 인자로만 채워진 리스트라는 뜻이었습니다. run configuration>arguments 메뉴를 통해 args에 해당하는 값을 이 리스트에 미리 넣어놓을 수 있습니다.
      • 김민아
        감사합니다 선생님
      • happybeom
        7.14
      • 자바 버전17인데
        클래스를 복사하고 붙여넣기해서 새로운 클래스를 만들면
        그안에 소스코드중에서 한글로 주석단부분이
        네모로 변해서 읽을수가없게되는데 혹시 해결방법없을까요?
      • 입력값에따라 출력값이 달라지는 프로그램은
        사용자가 달라지는 상황에맞춰서 매번 코드를 수정하지않고 사용할수있는 장점이있다

        parmeter: 매개변수
        main(String[] args); 에서 args는 문자열의 배열인 매개변수이고
        args의 입력값은 'run configuration'에서 arguments탭에서 값을 입력한다.
        이방법이 보편적인 입력값을 넣는방법이다.(매번 입력값을 팝업으로 입력하는수고를 덜수있다)

        같은 클래스에서 args에 다른 입력값을 넣고싶을때에
        'run configuration'에서 같은클래스에대해 마우스 우클릭으로 duplicate 한후에
        다시 arguments탭에서 넣고자하는 입력값을 넣으면 된다.
      • Osign
        22.07.02 시청 완료
      • 코린이94
        코드가 틀린게 없는데 팝업창이 왜 안뜰까요...? ㅠㅠ
      • 디카페인
        220616 완료
        큰따옴표로 넣어도 변수가 따로 설정되어 당황했는데
        알고보니 메인클래스를 잘못 지정했었다
        기본 설정 잘 확인하기..
      • muaa
        22.06.04 완

        입력 값도 종류 별로 다양하다 // argument, file, audio 등
        *검색을 적극 활용하자(관련 용어 숙지 필요)
        ㄴString A = JOptionPane.showInputDialog("Questuion") // String타입 변수 A의 input 팝업 창
        ㄴDouble.parseDouble(A) // 변수 A의 값을 double 타입으로 변환

        String[] // 배열 선언
        args // 매개변수(parameter, 사용자 입력 값)

        RunConfigurations // arguments 설정
        ㄴ arguments에 String[] args 배열(String[])의 값(args)을 input
        ㄴ 사용 예)String A = args[0]; // String 타입 변수 A에 arguments 첫 번째 값
        (큰 따옴표[" "]로 묶여있는 범위 까지가 통째로 하나)을 input

        Organize Run Favorites에 arguments 를 즐겨 찾기 설정 가능
      • seonee
        감사합니다. 디버그 창까지는 확인을 못해서 한번 확인해봐야겠네요~
        대화보기
        • 코딩뿌셔본다
          1번은 apply까지 하셨으면 잘 나올것 같은데 혹시 Debug 창 좌측편 보시면 디버그 한 시간별로 기록이 남아 있거든요. 혹시 이전 값으로 세팅되어 있는 목록에 체크되어 있으셨던건 아닌지 한번 살펴보시는건 어떨까요?? 가장 하단이 제일 최근에 디버그한 목록이에요 ㅜ 생각나는게 이정도밖에 없네요 ㅜ
          대화보기
          • 코딩뿌셔본다
            처음으로 팝업 뜨는걸 구현해내서 넘 신기하고 뿌듯합니다!!
            GUI (그래픽 사용자 인터페이스) 사용자가 편리하게 사용할 수 있도록 입출력 등의 기능을 알기 쉬운 아이콘 따위의 그래픽으로 나타낸 것이다.
            SWING 자바에서 GUI(Graphic User Interface)를 구현하기 위해 JDK에서 기본적으로 제공하는 개발 툴킷으로 선 마이크로시스템즈의 자바 기반 클래스의 일부이다.

            args는 이 프로그램을 사용하는 사람과 프로그램 사이에 매개가 되어준다 해서 '매개변수' (=Paramter)라 호칭된다.
            Run Configuration에서 실행했던 Agument의 값들이 args에 포함되게 하는 것......

            BrightenTheWorld 님 말씀처럼 작은따옴표로 하니 매개변수가 4개로 측정되어서 조금 헤매었는데 큰따옴표로 하는게 맞았네요!! 댓글 먼저 살펴볼걸 그랬다..
          • seonee
            configurations에서 값을 바꿔 실행한 후 디버깅하였는데 디버깅 args에서 전에 한 값이 나옵니다 어떻게 하면 제가 새롭게 지정한 값으로 나오게 할 수 있을까요?

            또한, 이고잉님처럼 configurations에서 새로운 값을 입력후 apply해도 새로운 실행값파일이 만들어지는게 아니라 기존에 있던 것에 덮어씌워집니다.

            두가지 문제에 대한 해결방법 문의드립니다.
            답변주시면 감사하겠습니다