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. burger
    2020.10.28
  2. 율율이
    여기 다시 볼 것
  3. 싱와
    컴퓨터 프로그램은 데이터값을 넣어주는 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 이라는 변수안에 들어가는 값들은 모조리 조합이 가능한 진짜 "애니띵" 함수가 된것이다!!
  4. 2010.10.11 argument ""로 완료
  5. string -> double 로 컨버팅하는 코드

    Double.parseDouble()

    다이얼로그창 띄우는 코드
    String 변수 = JOptionPane.showInputDialog("띄우고 싶은말")
  6. 별도로 따로 입력할 필요없이 프로그램 실행 이전부터 미리 입력값을 설정해 놓을수 있다 argument 에 값을 설정 해놓고, args[]라는 매개 변수를 통해 자동화를 시킬수 있다.
  7. 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 완료
      • 완료
      • 쥰쥰
        저는 띄어쓰기를 해야 argument값이 구분되네요.
        작은따옴표랑 큰따옴표 둘다 오류떴어요.
      • 자바를자바라
        2020-03-05
        Input & Output
        Argument & Parameter
      • 수영
        20200227
        큰따음표로 하니 저도 됩니다
      • 칩과데일
        少し難しくなりますね。
        とりあえず完了です
      • 권태우
        신기한기능 쉽게 배우고 있습니다. 엄청난 강의력 ㅠㅠ
      • 오 큰따옴표로 하니까 또되네요...ㅎㅎ..디버그 오류 좀 빨리 해결되면 좋겟습니다ㅠㅠ
      • 나도볼래
        진짜 설명 쉽게 해주셔서 감사히 잘따라했습니다. 진짜 최고세요..나의 빛..
      • 완료했습니다! ㅎ_ㅎ
      • 뉸찡
        2020.01.31 완료!
        " 큰 따옴표로 하니 제대로 작동하네요!
        댓글 덕분에 해결 너무 고맙습니다
      • 임지수
        2020.01.26 완료
        +''대신 ""로 바꿔서 하니 작동됨
      • 조혜령
        큰 따옴표로 하니까 제대로 동작하네요! 댓글들 감사합니다..
      • 라또마니
        저도 댓글보고 작은 따옴표에서 큰 따옴표로 바꾸니 인식을 하네요 감사합니다.
      • 취생아
        완료 2020.01.13
      • 소금설탕
        완료. 고맙습니다. 반복해봐야겠어요...
      버전 관리
      egoing
      현재 버전
      선택 버전
      graphittie 자세히 보기