JAVA1

입력과 출력

수업소개

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

 

 

 

강의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. OrzlHB
    조금 이해가 어렵지만 완료!!
  2. 틴마
    argument는 인자 parameter은 매개변수로 이용된다 값을 넣으면 코드의 매개변수안에 인자가 들어감
  3. 난길
    argument는 인자, parameter는 매개변수이다.
  4. 난길
    입력값을 받게 되면 좋은 점은, 사용자입장에서 커스텀된 프로그램을 사용할 수 있다는 것이다.
    입력값에는 음성, 텍스트, 이미지 등이 있을 수 있다.
  5. 비더베스트
    argument에 한글을 넣었더니 이클립스가 인식을 잘 못하는 것 같네요. "JAVA APT 507" 은 하나의 argument로 인식하는데 "자바 아파트 507"은 세 개의 argument로 인식합니다. 그리고 제목? 에는 "를 못 쓰게 되어 있어서 그거 때문에 apply가 안됐었네요 저는. ' 안돼서 " 로 바꾸시는 분은 혹시 apply 안되시면 참고하세요!
  6. 레이
    2021.04.01
  7. chimhyangmoo
    21.03.30
  8. jwoh
    21-03-24
    paramete (매개변수) args
    arguments : 인자
    args의 비밀이 풀리다!
  9. 나블
    parameter = 매개변수 = 입력값
  10. 심영섭
    왜인지는 모르겠지만 이고잉님이 하신 것과 다르게..? 문자열을 가리는 듯 합니다. 저는 더블쿼트(큰따옴표)로 argument부분을 감쌌는데 에러가 사라졌습니다.
    대화보기
    • parameter: 매개변수. 여기서는 args가 매개변수로 사용됨.
      argument: 그 변수. Java APT 507. 15.0이 입력값.
    • Sunho Kim
      완료(2021.03.10.수)
    • 윤유상
      argument는 입력하는 값이고, parameter는 입력받는 값이다.
    • 깅깅
      argument는 입력 값, parameter은 입력변수의 이름이다

      영상에서 사용된것으로 예를 들자면
      args가 변수의 이름인 parameter이고
      run configuration에서 argument에 입력한 "JAVA APT 301" "30.0"은 입력값인 argument이다
    • 깅깅
      제가 이해한게 맞다면
      입력 값을 사용하면 사용자가 프로그래밍에 대해 알지 못해도 input만 입력하면 원하는 output을 얻을 수 있어서 사용자에게 더 편리한 장점이 있는데 다만 입력할 수 있는 input에 대해 잘 알고 있어야 할 것 같아요. 입력 값은 무엇이든 될 수 있지 않을까요? 영상에서 본 것처럼 argument(text..), file, network에서 다운 받은 것, audio, program의 결과 값이나 사진, 영상, 빛 또 기술이 더 발전하면 촉감이나, 향기도 입력 값이 될 수 있을 것 같은데, 이게 제대로 된 질문의 답인지는 모르겠네요ㅋㅋ 강의 진짜 좋아요.. 감사합니다
    • 이현수
      2021.02.24(수)
    • 이형규
      최신 eclipse에서 관련 argument를 넣을 때 여러 단어의 문자열은 홑따옴표가 아니라 쌍따옴표로 묶어야 하더군요. 참고하시길
    • 이토리
      0218 완료!!
    • 아쭈
      Exception in thread "main" java.lang.Error: Unresolved compilation problem:
      JOptionPane cannot be resolved

      at OkJavaGoInHomeInput.main(OkJavaGoInHomeInput.java:11)
      이런 오류가 뜨는데 왜 그럴까요? 복사 붙여넣기 후 IMPORT 했는데도 빨간 밑줄이 계속 뜨네요.. 제발 알려주세용 ㅜㅜ
    • HiTurtle
      argument 지정시 숫자 입력에 대한 문제를 저도겪었습니다.
      에러코드? 메시지를 따라 더듬더듬 이해하려고 하다보니 "" 를 넣어야겠더라구요 저도 왜인지 모르지만 같은 방식으로 해결했습니다.
      대화보기
      • baeroro
        20210206

        parameter(매개변수) -
        argument(입력 값) - 실제 호출되는 값
      • 규영아빠
        20210205 완료

        예전 강의보다 정말 다이나믹 합니다. 감사합니다!!!
      • 초보용
        사정 상 구름ide에서 수업을 받고 있는 한 학생입니다. 그런데 아무래도 자바와 구름의 환경이 다른 탓 인지 위 수업에서의 import javax.swing.JOptionPane; 에서 JOptionPane의 변수를 찾지 못하더군요 혹시 이것에 대한 해답을 아시는 분 이 계실까 하여 글 남겨봅니다.
      • 1. 입력값을 이용한다면 다른 값으로 같은 프로그램을 실행할 때 굳이 코드를 고치지 않아도 되어 편리해진다. (입력값만 바꾸면 되니까) 입력값은 사용자가 직접 키보드로 입력한 것이나 웹사이트에 써진 글을 스캔한 것 등이 사용될 수 있을 것이다.
        2. argument는 사용자가 프로그램 실행 전 미리 값을 정해두어 실행 시 프로그램에 전달하는 인자이다. parameter는 매개변수로, 사용자가 입력한 전달인자를 받는 변수 역할을 한다.
      • submit
        완료!!
      • 1000210002
        2021/01/07
      • 꾸르를꾸
        1. 각기 다른 사용자의 입력값을 넣어 그에 맞춰 출력을 달리 할 수 있다.
        2. 문자열? 정수,실수도 되나?
        3. ?
      • artmaker
        9.1 들어올때마다 코드의 내용을 수정하는 것은 좋은 코드가아니다. 따라서 입력값을 받는게 좋다고하셨고 그 말이 설명을 잘할수는 없어도 무슨말인지 이해를 했다. 저번시간에 배운 형변환이 어떻게 쓰이는지에대해서도 알수 있었다. 그리고 자신이 궁금한 점에대해 핵심키워드를 써서 검색을 하는것이 얼마나 중요한지도 알수있었고 코딩하는데있어 검색이 얼마나 많이 쓰일지에대해서도 알수 있었다. 이코드에 대해선 안보고 한번 코딩을 해보았다 검색하는 과정까지도.

        9.2 java에서 입력값을 받는 가장 표준적인 방법
        args 라는 parameter(매개변수)를 이용해서 받는다. 값이 여러가지일때는 배열을 이용하여 args[0], args[1] 이런식으로 0번째 1번째 등 순서를 매겨준다. 이클립에서만 해당되는 것중 하나는 run configuration에 들어가서 arguments 탭에서 그일을 할 수 있다. 여기서 순서를 구분하는 것은 ' ' 이다.
        ex) 'pusan' '14.0' --> 첫번째 인자는 pusan 두번째 인자는 14.0이 되는것이다.

        번외) 이유는 모르겠지만 작은따옴표로 인자값을 구분하면 숫자형식오류가 발생해서 큰따옴표로 인자를 구분해주었더니 정상실행이되었다.
      • 아츄
        201223
      • Seoil Park
        제대로 쫓아가는 건지 잘 모르겠네요...???
      • 나무상자
        args [0] [1] [2] [3] 이렇게 나오시는 분들 디버그 옆에 히스토리같은거 전부 Terminate and Remove 하시고 큰 따움표로 다시 적용하시고 디버그 하시면 똑같이 나옵니다.
      • 20201210
      • 20201209
      • 그넝
        구글링 ㄹㅇㅋㅋ
      • 최사각
        201120
      • 단순미
        입력 기능 하나만 더 들어가도 프로그램의 질이 달라진다. 방법은 구글에 친절하게 나와있다는게 충격적이다.
      • Run Configurations에 Arguments를 이용하면 매개변수 args를 통해 자주 쓰는 변수 값을 저장하여 편리하게 사용가능하다.
      • 안광민
        완료
      • burger
        2020.10.28
      • 율율이
        여기 다시 볼 것
      • 싱와
        컴퓨터 프로그램은 데이터값을 넣어주는 Input 과정을 거쳐 프로그램을 거쳐 출력되는 output으로 정리된다.

        이떄 input 값에는 아규먼트, 파일, 네트워크 , 오디오, 프로그램(혹은 여기에서 출력된 값) 들이 들어갈 수 있는데
        이렇게 들어간 인풋값들이 무엇이냐에 따라서 자연스럽게 아웃풋도 달라진다.

        우리가 밥을 뭘 먹었느냐에 따라서 응아 색깔이 달라진다고 생각하면 편하다. (우리의 소화과정도 하나의 프로그램이다.)

        ----

        파라미터(매개변수)와 아규먼트의 정확한 차이

        아, 이놈의 파라미터랑 아규먼트, 나중에 다른 언어 앱만들기 강의 들으면 이게 파라미터고 뭐시고 뭐시고 하는데 뭔소린지 하나도 못알아듣겠다. 그래서 정확하게 개념정립하고 가는게 진짜 중요하다고 생각해서 돌아올 수 밖에 없다..하... 스위프트에서는 아규먼트 레이블이고 뭐시고 또 뭐시기 하는데.. 하여간 혼란스럽다. 중요하다. 이거 잘 정립하는거.

        우리가 하나의 프로그램을 짰다고 해보자.

        function anything() {
        system.out.printlm(playing+meditating)
        }

        이라는 함수가 있다고 했을때, 요놈에게 데이터값 하나만을 투입해서 하나의 값을 도출하고 출력하는것만 가능하다. 요 함수를 해석해보자면 이 애니띵함수는 닉값못하고 노는거랑 명상하는거밖에 못한다. 근데, 요 함수를 기껏해서 프로그래밍했는데 노는거랑 명상하는거 합쳐놓은것만 출력하기는 뭔가 아깝다.. 그래서, 요놈들에게 값을 여러개 넣어줄 수 있는 개구멍(변수)을 만든다.

        우리가 매개변수에 대해서는 중고등학교 시절을 지나며 참 많이 친숙해졌을텐데, 이게 매개변수라고 친절하게 설명해주는 수학선생님들은 잘 없는듯 하다.. 바로 f(x) 중 x가 바로 매개 변수다. 이름은 뭔들, 상관없다. f(뭐시기) 라고 해도 딱히 상관없다. 근데 뭐시기는 한글이니까 컴파일 하면 오류나겠지.

        그리고 저 f(x) 에 들어가는 x값이 바로 아규먼트(인자)다. f(2) 여기서 2는 아규먼트다. 즉, 매개변수에 들어가는 정확한 특정한 값을 아규먼트라고하고, 그걸 일반화시킨 변수의 모양이 매개변수라고 할 수 있을것이다.

        그래서 개구멍을 뚫은 애니띵 함수로 수정해보자,

        function anything(doing, thinking) {
        system.out.printlm(doing+thinking)
        }

        이라는 함수가 있었을때, () 안에 있는 doing, thinking 은 매개변수,
        doing = playing, eating , washing, studying , etc.. 이 있다고 할때, playing 이런것 하나하나가 다 아규먼트다.

        이전에는 playing하고 meditating 이라는 하나의 값만 합칠 수 있었다면 이제는 doing과 thinking 이라는 변수안에 들어가는 값들은 모조리 조합이 가능한 진짜 "애니띵" 함수가 된것이다!!
      • 2010.10.11 argument ""로 완료
      • string -> double 로 컨버팅하는 코드

        Double.parseDouble()

        다이얼로그창 띄우는 코드
        String 변수 = JOptionPane.showInputDialog("띄우고 싶은말")
      • 별도로 따로 입력할 필요없이 프로그램 실행 이전부터 미리 입력값을 설정해 놓을수 있다 argument 에 값을 설정 해놓고, args[]라는 매개 변수를 통해 자동화를 시킬수 있다.
      • 20.08.03
        Run 에도 configuration 가 있듯이
        Debug 에도 configuration 가 있습니다.
        설정을 "" 로 해주셔야 바뀝니다.
        대화보기
        • 최교진
          Run Configuration 에서 Arguments를 큰따옴표로 구분하여 입력하면 프로그램은 정상 실행되지만,
          "Java APT 507" "15.0"

          디버그 모드에서 실행하면 args[] 값에 띄어쓰기 기준으로 보여집니다.

          args String[4] (id=20)
          [0] "'Java" (id=21)
          [1] "APT" (id=29)
          [2] "507'" (id=30)
          [3] "'15.0'" (id=31)

          어떤 이유인지 잘 모르겠네요.. 디버그모드의 오류일까요?
        • 김승현
          args 매개변수,파라미터: 프로그램은 사용자가 입력한 값(파라미터,매개변수)를 받고 출력값을 낸다.
          arguments를 적어주면 매번 입력하지 않고도 출력값을 얻을 수 있다.
        • 김승현
          입력값을 장점? 정해진 값이 아닌 사용자가 원하는 결과값을 얻게 해준다.
          어떤 인풋이 있는가? 아이디 비밀번호 설문작성 검색....
          그 인풋을 어떻게 프로그램에 적용할 수 있는가? 구글링하여 필요한 기능을 찾고 그 기능을 import하여 상요한다
          컨버팅: string to double 등 문자열을 실수값으로 넣을 수 있게 변환시키는 기능
        • d.minn
          2020.09.03 완료
        • 제대로해보자
          완료! (집가서 복습 예정)
        버전 관리
        egoing
        현재 버전
        선택 버전
        graphittie 자세히 보기