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. 학습완료
  2. 찐옥수수
    23.03.11 완료
  3. 태봉이
    20230202
  4. 호크
    입력값을 받는 방법
    - showInputDialgog : 입력창을 띄워서 입력값을 받아서 사용
    - args : Run Configuration에서 입력한 parameter를 args 배열에 하나씩 받아서 사용
  5. 비전공자의반란
    큰 따옴표로 바꾸니 정상작동 하네요 23-01-10 완
  6. 23.01.08
  7. 개구리
    parameter, 즉 매개변수는 이름을 붙여주는 것이라고 해석했어요. 말씀하셨던 것처럼 코드는 나도 보고 남도 보는 거라 가독성이 중요하니까 이해를 도울 수 있도록 이건 이거예요라고 이름을 붙이는 개념 같아요.
    argument는 입력받을 입력값을 미리 설정해서 개발자 입장에서 여러가지를 테스트를 하기 편하게 해 주는 기능인 것 같네요.
  8. 자바뿌시기
    22/12/31
  9. 단추형아
    감사합니다 덕분에 해결했네요
    대화보기
    • 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탭에서 넣고자하는 입력값을 넣으면 된다.
    • 22.07.02 시청 완료
    • 코린이94
      코드가 틀린게 없는데 팝업창이 왜 안뜰까요...? ㅠㅠ
    • 디카페인
      220616 완료
      큰따옴표로 넣어도 변수가 따로 설정되어 당황했는데
      알고보니 메인클래스를 잘못 지정했었다
      기본 설정 잘 확인하기..
    • 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해도 새로운 실행값파일이 만들어지는게 아니라 기존에 있던 것에 덮어씌워집니다.

          두가지 문제에 대한 해결방법 문의드립니다.
          답변주시면 감사하겠습니다
        • 낙타
          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
        • MUK_
          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
          버전 관리
          egoing
          현재 버전
          선택 버전
          graphittie 자세히 보기