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

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

    같은 클래스에서 args에 다른 입력값을 넣고싶을때에
    'run configuration'에서 같은클래스에대해 마우스 우클릭으로 duplicate 한후에
    다시 arguments탭에서 넣고자하는 입력값을 넣으면 된다.
  15. 22.07.02 시청 완료
  16. 코린이94
    코드가 틀린게 없는데 팝업창이 왜 안뜰까요...? ㅠㅠ
  17. 디카페인
    220616 완료
    큰따옴표로 넣어도 변수가 따로 설정되어 당황했는데
    알고보니 메인클래스를 잘못 지정했었다
    기본 설정 잘 확인하기..
  18. 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 를 즐겨 찾기 설정 가능
  19. seonee
    감사합니다. 디버그 창까지는 확인을 못해서 한번 확인해봐야겠네요~
    대화보기
    • 코딩뿌셔본다
      1번은 apply까지 하셨으면 잘 나올것 같은데 혹시 Debug 창 좌측편 보시면 디버그 한 시간별로 기록이 남아 있거든요. 혹시 이전 값으로 세팅되어 있는 목록에 체크되어 있으셨던건 아닌지 한번 살펴보시는건 어떨까요?? 가장 하단이 제일 최근에 디버그한 목록이에요 ㅜ 생각나는게 이정도밖에 없네요 ㅜ
      대화보기
      • 코딩뿌셔본다
        처음으로 팝업 뜨는걸 구현해내서 넘 신기하고 뿌듯합니다!!
        GUI (그래픽 사용자 인터페이스) 사용자가 편리하게 사용할 수 있도록 입출력 등의 기능을 알기 쉬운 아이콘 따위의 그래픽으로 나타낸 것이다.
        SWING 자바에서 GUI(Graphic User Interface)를 구현하기 위해 JDK에서 기본적으로 제공하는 개발 툴킷으로 선 마이크로시스템즈의 자바 기반 클래스의 일부이다.

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

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

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

        두가지 문제에 대한 해결방법 문의드립니다.
        답변주시면 감사하겠습니다
      • 낙타
        22/5/14
      • 육도
        2022.04.30 완료
      • gutenmorgen
        중요한 건 원하는 걸 찾아올 수 있는 검색 능력.
        Run configurations를 통해서 args (arguments)를 미리 설정해볼 수 있다.
      • danielkwon
        argument는 인자라는 뜻으로 이것을 통해서 args 매개변수를 받아 매번 팝업창에 입력값을 넣어야하는 과정을 생략 할 수 있고, Duplicate 를 통해 다른 인자값도 변경하여 적용 시킬수 있다.
      • 꿀벌
        String A = JOptionPane.showInputDialog("Questuion") 을 상단에 넣어줌으로써
        Q에 대해 묻는 팝업에 A 를 입력 후 컴파일

        Double.parseDouble(A)
        String(문자열)인 A 를 Double형으로 바꿔줌

        arguments 를 통해서 args 값을 미리 정해 매번 입력을 해야 하는 수고를 덜 수 있다.
      • 세포
        220216 출석

        String id = JOptionPane.showInputDialog("Enter a ID"); 대화상자
        moodLamp.setBright(Double.parseDouble(bright)); 대화상자에 적을 변수의 데이터 타입을 double로 받기

        인자(argument)와 매개변수(parameter)
        : String id = args[0];와 같이 인자 받기 > run 오른쪽 화살표에 run configurations > argument에 인자 집어넣기 > apply
      • 열정jk
        220206 감사합니다
      • KeiJx2
        2022/02/03
      • 22/02/02 완료
        arguments 에서 작은따옴표로 했더니 적용되지 않아 큰따옴표로 했습니다
      • 나연
        2022년 1월 31일 (월) 완료

        `Run Configurations` > `Arguments`: Enter arguments enclosed by quotation marks ("")
      • BrightenTheWorld
        Run Configurations 에서 Arguments 입력할 때 작은따옴표 'Java APT 510' '15.0' 으로 하니까 디버깅 할때 매개변수가 4개 (Java, APT, 510, 15.0)으로 되네요 매개변수 설정할 때 큰따옴표 "Java APT 510" "15.0"으로 묶어서 해결했습니다. 이클립스가 업데이트 된건가요? 암튼 동영상대로 하다가 살짝 막혔네요, 큰따옴표로 하는게 맞는것 같습니다.
      • 카멜리안_최유리
        220125 완료!
      • 개발자Y
        22.01.05. 수강완료
      • Sansol Park
        https://www.facebook.com......ody

        생활코딩 페이스북 그룹에서 좀 더 자세하게 질문을 남겨주시면 다른 분들이 도움을 주실거에요! :)
        대화보기
        • 김마린
          다들 잘 되시나 보네요..전 창이 안뜹니다. 더 이상 진행불가예요.
          전 시간에 배운 디버거 사용해보니 Elevator myElevator = new Elevator(id); 요기서부터 실행이 안되는걸로 나오긴 하는데
          긁어서 그대로 붙인거라 오류가 날건 없어 보이는데 어렵네요.
        • 낀찐
          21.12.27 <입력과 출력>

          1. JOptionPane
          - JOptionPane 임포트하면 문자열 변수 값을 입력할 수 있는 팝업을 표시할 수 있다. (*구글링)
          - 입력값이 다른 데이터 타입이라면, 데이터 타입을 변환해준다. (e.g. Double.parseDouble(변수)

          2. argument
          - 이클립스에서는 Run Configuration 를 통해 argument 에 변수 값을 설정할 수 있다.
          - 2개 이상의 변수 값을 설정해야 할 때는 큰따옴표("")로 구분한다. (디버깅을 통해 확인)
        • 김나루
          21 12 22
        • 김한솔
          21-12-20

          * 전달인자(Argument)
          - 메서드 호출 시 전달되는 값
          - 함수와 메소드의 입력 값(Value)
          - 매개변수에 대입하는 값으로, 실제로 메모리에 할당된 변수

          * 매개변수(Parameter)
          - 메서드에서 전달받은 값
          - 함수와 메서드 입력 변수(Variable)명
          - 실제로 메모리에 할당되어 있지 않은 변수, 텅 빈 하나의 박스(공간)
        • 초보자바
          2021-12-04 완료
          검색을 통하여 코딩하는 것은 독립하는 것에 있어서 가장 중요한 것이다.
          text를 입력받는 팝업을 여는 코드를 찾기위해 java input text popup 이런식으로 검색하여 코드를 찾는다.
          이러한 코드는 실행했을 때 실행자가 입력을 함에 따라 출력이 달라지게 한다.
          입력을 하는데는 이러한 방법도 있지만 이클립스에는 arguments라는 도구가 있다.
          여기에 입력을 하면 문자열의 배열인 매개변수 args에 저장되며 args[0], args[1], ...등으로 호출할 수 있다.
        • 김휘철
          잘 봤습니다~
        • chalieya
          arguments Name 칸에는 큰따옴표로 입력하니까 Apply가 안눌러지는데 그냥 작은 따옴표로 하고.. Variables 입력란에 입력하는 변수는 큰 따옴표로 하니까 오류가 나지 않습니다.
        • chalieya
          입력값이 있으면 서로 다른 유저들이 자기만의 입력값을 통해 서로다른 정보를 출력할 수 있는 장점이 있을 수 있겠고, 로긴화면 같은 곳에 회원 확인 과정등에 사용될 수 있을 것 같습니다.
        • syh712
          2021-11-16
          <입력과 출력>

          -인풋(아규먼트, 파일, 넷웍, 오디오, 프로그램)->프로그램->아웃풋(모니터/파일/오디오/프로그램)

          -String id = JOptionPane.showInputDialog("Enter a ID");
          이 코드에 의해서 자바가 스윙이라는 기술의 오픈옵션페인이라는 기능의 쇼인풋 다이얼로그를 켜주면 조그만 상자가 뜨고, 상자에 입력하면, 자바는 실행멈춰있다가,

          -입력값을 여러개 넣고 싶다면?
          -String bright = JOptionPane.showInputDialog("Enter a ID");
          -moodLamp.setBright(bright);
          => 오류의 원인? 셋브라잇 안에는 더블(실수)가 들어가야 함. 그런데 현재는 브라이트가 스트링(문자열)로 되어 있음.

          => 스택오버플로 검색: "java string to double conversion"
          "Double.parseDouble(bright)" 스트링을 더블로 변환
          어떤 인풋이 있는가. 그 인풋을 어떻게 프로그램안으로 끌고 들어올 수 있는가는 프로그래밍 학습시 매우 중요한 요소.

          *이클립스 안에 실행 저장
          - Run Configuration(실행설정)
          - 아규먼트 'Java APT 507' 입력(하나로 묶어주기)
          - 어플라이 (저장)
          - 네임: 자기가 실행하려는 내용 저장할 수 있음
          - 최종적으로 'Run'버튼 입력

          - 프로그램을 실행했을 때 입력값을 받는 방법은 표준적인 건 '아규먼트(인자)'를 받는 방식이다.
          - 런 컨피규레이션 -> 프로그램 아규먼츠
          - args = 프로그램 사용자와 이 프로그램 사이에 매개해줌='매개변수'(파라미터)
          - parameter (매개변수)
          - 즉 'JAva Apt 507' '15.0' 두개의 아규먼츠(인자)는 'args'라는 매개변수로 들어오는 것임
          - String[] args 에서 대괄호([])는 문자열로만 이뤄져있는 '배열'이라는 데이터다. args라는 변수에 사용자가 입력한 변수가 들어옴.
          - 나머지 중괄호 {} 안에서는 args가 사용자가 입력한 값이라는 점을 이해해야 함.

          *프로그램이 실행될 때 입력값을 받는 가장 표준방법은 args라는 파라미터를 통해 받는다. 그 파라미터에 여러 값이 들어올 때 대괄호의 0번째 1번째를 통해 받을 수 있다. 이클립스에 런컨피그-> 아규먼트 채워서 그 일을 할 수 있다."
          덧붙여 즐겨찾기도 추가 가능.
        • mano
          2021-11-14
        • 나자바바라
          2021. 11. 06.
        • 미루꾸우우
          21.10.28
        • won4175
          2021.10.6
        • 주간식당메뉴
          21.09.30.
        버전 관리
        egoing
        현재 버전
        선택 버전
        graphittie 자세히 보기