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. boat
    1. 입력값을 이용한다면 다른 값으로 같은 프로그램을 실행할 때 굳이 코드를 고치지 않아도 되어 편리해진다. (입력값만 바꾸면 되니까) 입력값은 사용자가 직접 키보드로 입력한 것이나 웹사이트에 써진 글을 스캔한 것 등이 사용될 수 있을 것이다.
    2. argument는 사용자가 프로그램 실행 전 미리 값을 정해두어 실행 시 프로그램에 전달하는 인자이다. parameter는 매개변수로, 사용자가 입력한 전달인자를 받는 변수 역할을 한다.
  2. submit
    완료!!
  3. 1000210002
    2021/01/07
  4. 꾸르를꾸
    1. 각기 다른 사용자의 입력값을 넣어 그에 맞춰 출력을 달리 할 수 있다.
    2. 문자열? 정수,실수도 되나?
    3. ?
  5. artmaker
    9.1 들어올때마다 코드의 내용을 수정하는 것은 좋은 코드가아니다. 따라서 입력값을 받는게 좋다고하셨고 그 말이 설명을 잘할수는 없어도 무슨말인지 이해를 했다. 저번시간에 배운 형변환이 어떻게 쓰이는지에대해서도 알수 있었다. 그리고 자신이 궁금한 점에대해 핵심키워드를 써서 검색을 하는것이 얼마나 중요한지도 알수있었고 코딩하는데있어 검색이 얼마나 많이 쓰일지에대해서도 알수 있었다. 이코드에 대해선 안보고 한번 코딩을 해보았다 검색하는 과정까지도.

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

    번외) 이유는 모르겠지만 작은따옴표로 인자값을 구분하면 숫자형식오류가 발생해서 큰따옴표로 인자를 구분해주었더니 정상실행이되었다.
  6. 아츄
    201223
  7. Seoil Park
    제대로 쫓아가는 건지 잘 모르겠네요...???
  8. 나무상자
    args [0] [1] [2] [3] 이렇게 나오시는 분들 디버그 옆에 히스토리같은거 전부 Terminate and Remove 하시고 큰 따움표로 다시 적용하시고 디버그 하시면 똑같이 나옵니다.
  9. 20201210
  10. 20201209
  11. 그넝
    구글링 ㄹㅇㅋㅋ
  12. 최사각
    201120
  13. 단순미
    입력 기능 하나만 더 들어가도 프로그램의 질이 달라진다. 방법은 구글에 친절하게 나와있다는게 충격적이다.
  14. Run Configurations에 Arguments를 이용하면 매개변수 args를 통해 자주 쓰는 변수 값을 저장하여 편리하게 사용가능하다.
  15. 안광민
    완료
  16. burger
    2020.10.28
  17. 율율이
    여기 다시 볼 것
  18. 싱와
    컴퓨터 프로그램은 데이터값을 넣어주는 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 이라는 변수안에 들어가는 값들은 모조리 조합이 가능한 진짜 "애니띵" 함수가 된것이다!!
  19. 2010.10.11 argument ""로 완료
  20. string -> double 로 컨버팅하는 코드

    Double.parseDouble()

    다이얼로그창 띄우는 코드
    String 변수 = JOptionPane.showInputDialog("띄우고 싶은말")
  21. 별도로 따로 입력할 필요없이 프로그램 실행 이전부터 미리 입력값을 설정해 놓을수 있다 argument 에 값을 설정 해놓고, args[]라는 매개 변수를 통해 자동화를 시킬수 있다.
  22. 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 완료
    • 제대로해보자
      완료! (집가서 복습 예정)
    • 초보자바
      8/22 강의1 완료.
      converting또는 여러가지 모르는 코드들은 검색을 통하여 얻을 수있으니 검색이 매우 중요하므로 검색연습도 많이 해야한다. (java string to double conversion : 문자를 실수로 converting하는 코드 검색),
      (java text input popup swing : 텍스트를 팝업에 입력하는 창 띄우는 코드 검색)
      8/26 강의2 완료.
      run configuration에서 항목을 선택하고 arguments에서 인자를 설정할 수 있다.""를 이용하여 인자를 묶을 수 있으며 띄어쓰기로 인자들을 구분할 수 있다. 인자를 사용할 때에는 자바창에서 args{}로 사용할 수 있으며 인자는 왼쪽부터 0,1,2,3 순으로 규명할 수 있다.
    • 포기금지
      저는 이상하게 계속
      agrs
      0=Java
      1=APT
      2=507
      3=15.0
      으로 뜨네요....ㅠㅠ 다시 처음부터 하고 아래 분들 처럼 큰따옴표로도 바꿔보고 띄여서도 해봤는데 해결이 되지 않아서agrs(012);
      agrs(3);
      으로 바꿔서 입력해 넣으니깐 됬습니다. 맞는 방법인지는 모르겠지만.. 일단 다음 강의로 넘어가겠습니다!
    • 치디우기
      20/8/13일 수강 완료~
    • mangjoong
      200813
      1.
      showinputdialog : 자바에서 팝업창 뜨게하는 명령어
      double.parsedouble : 문자열을 실수로 변환시켜주는 명령어
      구글링할 줄 알아야 내가 쓸 수 있는 명령어가 많아진다. 구글링을 자주 시도해보도록 하자.
      ex ) java popup input / java string to double conversion
      2.
      run configuration 항목으로 인자설정을 할 수 있었고 쌍따옴표로 여러 문자들을 하나로 취급할 수 있었다.
      argument 항목에서 인자를 규정하고 매개변수인 args는 args[0], args[1] ...와 같이 표현하여서 규정된 인자들을 순서에 맞게 사용가능하다.
    • 재도전
      8/8 완료
    • 느리지만꾸준히
      Run Configurations 에서 args 입력할때 큰따옴표" 입력해야 정상적으로 되네요~

      Run Configurations arguments로 입력값 실행리스트 만들기 !!
    • 매일
      7.30 완료
    • 프로그래머Y
      1. 특정 단어를 일괄적으로 입력하고 싶을 때 입력값을 이용해 손쉽게 처리할 수 있다.

      2. 두번째 강의 디버깅 이용하면서 오류발생. 나중에 다시 시도해봐야지!
    • 남붕어
      1. 나중에 고유 입력값을 넣으면 다르게 반응하는 이스터에그도 만들 수 있을 것 같고, string 또는 number 류가 가능하지않을까요...?

      2. args가 매개변수인데 이거는 argument에서 넣어준 값에 따라 결과 값을 넣어준다.
      "a" "b" "c" "d"를했을때
      string xx = args[0];
      string xx = args[1];
      string xx = args[2];
      string xx = args[3]; 은 오류가 났다...
      그치만 string xx = args[0];에서 0부분만 123으로 바꾸니 a에 대한 수행 b에 대한 수행 c에 대한 수행으로 바뀌어서 나왔다.
    • 다미
      public static void main(String[] args) {
      -여기서 args 가 매개변수
      -문자열이 [] 이 안에 들어가 구분된다는 것
      -args에 값 들어가는 것

      넘우 신기하네요
      그냥 사용하면서도 궁금해하지도 않고 썼던건데
      이마를 탁 ! 치고 갑니다 ,,
    • 니이내이
      argument란 이것을 받음으로써 입력값을 받을수있다. 이것을 위해서는 args라는 parameter를 통해 argument가 들어오고 이것을 이용하여 프로그램 변수에 값을 넣어줄수있다.
    • buffybuff
      arg입력할 때 "" 큰 따옴표 입력해야 되네요!
    • 선대범
      강의2
      String id = args[0];
      String bright = args[1];

      run configuartions-argument 원하는값 프리설정
    • 선대범
      강의1 : JOptionPane.showInputDialog, 빨같 밑줄 참고(import)
    • 영철이
      argument : 호출인자 -> 함수의 호출 부분에서 사용됨
      parameter : 매개변수 -> 함수의 정의 부분에서 사용됨

      Sum(1, 2);

      int Sum(int n, int m){
      return n+m;
      }

      위와 같을 때
      Sum(1, 2); 의 1과 2는 argument
      int Sum(int n, int m) 의 n과 m은 parameter
    • yechubot
      argument - 인자
      parameter- 매개변수
      parmeter를 통해 argument 값을 받는다.
    • dofvmrhwk
      이해 아직 잘 안되지만 다음에 한번더 들어야 겠어용ㅎㅎ
    • 박수찬
      팝업이 뜨면서 텍스트를 입력하고 싶다. swing
      showInputDialog

      arguments & parameter
    • 브라이언
      큰따옴표로 완료.
    • nsnsns
      저도 그런데 혹시 해결하셨나요??
      대화보기
      • 문병민
        2020.03.13 완료

        파라미터를 통해 값을 아규먼트로 받아서 출력이 되는건가요?

        맞게 이해했는지 모르겠네요 ㅋㅋ
      • 정찰스
        입력값을 이용하면, 사용자가 원하는 값을 입력과 동시에 일괄적으로 변환할 수 있다.
      • cmg8431
        2020.03.11 완료
      버전 관리
      egoing
      현재 버전
      선택 버전
      graphittie 자세히 보기