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. 개발자Y
    22.01.05. 수강완료
  2. 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번째를 통해 받을 수 있다. 이클립스에 런컨피그-> 아규먼트 채워서 그 일을 할 수 있다."
      덧붙여 즐겨찾기도 추가 가능.
    • 2021-11-14
    • 나자바바라
      2021. 11. 06.
    • 미루꾸우우
      21.10.28
    • won4175
      2021.10.6
    • 주간식당메뉴
      21.09.30.
    • 미NI언
      9.27일
    • 오수정
      밑 effortcorders 님댓에서 발췌

      여기서 입력값은 영상에서는 작은 따옴표로 값을 감싸주었지만,
      최신 eclipse는 큰따옴표 " 로 감싸주어야 나중에 args가 따로따로 인식을 하지 않는다.

      작은 따옴표로 args에 값이 안들어가서 무엇이 잘못되었는지 또 한참고민...
      2021.09.27 pm13:04
    • esther
      21.09.17
    • 오재
      20210810 arguments에 쌍따옴표로 작성해야 한문장으로 읽히는데 맞는거죠 ?
    • labis98
      20210807 good!!!
    • 2021.08.06 완료
    • 이마누
      완료
    • super1Nova
      210803
    • 김지원
      Run InputOutput 버튼의 세모 를 클릭 -> Run configurations 클릭 - > 작업하고자 하는 클래스 클릭 -> Arguments에 원하는 내용을 적는다. 이때 ' '으로 각기 넣고 하는 내용을 구분 할 수 있다. - > Name을 정한다. -> apply - > 코드에서 String id = args[0]; 으로 사용한다.
    • 피톤치드
      args 는 매개변수인데 이 매개변수는 영어로 parameter이다.
      args[0] args[1]는 parameter로써 arguments에 입력되어진 값을 매개하는(둘 사이에서 관계를 맺어주다) 역할을 한다.
    • 2021-07-24 수강완료
      1. 입력값 넣는 방법
      1) Pop up text Swing
      2) Argument
      2. String to Double
    • 보리보리쌀
      2021.07.21
    • B=loom
      2021.07.15
    • 조유빈
      2021.07.12 완료
    • Jaemin Lim
      21.07.12
      아규먼트 - 변수값
      파라메터 - 매개변수

      args에 저장할 때, ""를 사용하고, 두개 이상의 값을 지정할때는 " "를 넣어 구분한다.
    • 걸어가는신사
      2021/07/04
    • 초딩 개발자
      2021/06/10
    • Dominic
      간단히 요약하자면, Prgogram arguments, 예를 들어 여러 값들에 대한 결과를 테스트 하기 위해서 임의 값을 설정 및 지정 해 놓을수 있음. 요정도만 이해하고, 관련 예제를 많이 찾아서 연습하는것을 추천!
    • 이오닝
      - Java에서는 프로그램이 실행될 때 입력을 받는 방식으로 args 파라미터를 사용함

      - 이 파라미터에 들어갈 수 있는 특정한 값을 arguments 라고 함(ex. JAVA APT)

      - main(string[ ] args) { } 블럭 안에서는 args가 사용자가 입력한 값이라고 선언하는 것
    • 도공우승9
      완료
    • effortcoders
      eclipse에만 해당하는 이야기지만
      우리가 실행하는 여러가지 방법들을 정리 / 정의 해줄 수 있다

      프로그램을 개발하다 보면 일일히 실행시키고 값을 넣어줘야해서 번거로운데

      Run Configuration을 통해 자신의 프로그램을 선택하고 argument에서 자신의 입력값을 입력해주자

      여기서 입력값은 영상에서는 작은 따옴표로 값을 감싸주었지만,
      최신 eclipse는 큰따옴표 " 로 감싸주어야 나중에 args가 따로따로 인식을 하지 않는다.

      Apply를 통해 저장을 반영해주고, Name에 우리가 입력한 argument 값이 무엇인지 표시해두자.
      혹여나 여러개를 테스트 할 때 헷갈릴 까봐 Name에 표시를 해두시는 것 같다.

      이제, argument를 통해 입력을 해주었고 이걸 이제 어떻게 받느냐면

      String[] args 부분의 args는 변수이며, 이 변수는 이 프로그램을 사용하는 사용자와 프로그램 사이의 값을
      매개 해준다 하여 매개변수라 한다. ( 매개변수 = 파라미터 = parameter )

      아까 입력한 argument인 "Java APT 501" "15.0" 은 모두 이 args에 들어가게 된다.

      하지만 값이 두개이기에, 그냥 문자열로 받을 수 없어 String 옆의 [] 대괄호를 붙였는데
      이 대괄호가 붙어있는 문자열은 "문자열로만 이루어진 배열이라고 하는 데이터" 라는 것이다.

      배열이란 개념도 중요하지만 우선은 이 args에 사용자가 입력한 데이터가 들어간다라는 것과
      args 다음의 {} 중괄호에 쓰는 우리의 코드는 모두 사용자가 입력하는 값이 된다.

      그래서 id = args[0] <- 프로그램은 1부터가 아닌 0부터 시작
      bright = args[1] 이 넣어진다

      이제 개발을 하다보면 여러가지 테스트를 하는데,
      기존의 argument 값이 아닌 다른 값으로 여러가지 테스트를 해봐야 한다면

      진행중인 파일의 우클릭으로 duplicate로 똑같은 파일을 하나 만들 수 있다.

      argument 값과 Name에 변경사항을 적고, apply를 통해 저장해주고 Run을 시켜보자.

      + 자주 사용하는 것들을 목록에 추가해보자 ( 즐겨찾기 방식 )
      Organaize favorites를 클릭하여 add -> 즐겨찾기할 프로그램들 체크 해주면 끝
    • Aaron81
      210513
    • jeisyoon
      2021.04.29 Program Input & Output - OK

      1. Program 에서 화면을 통한 Input 과 Output
      2. Eclipse 에만 있는 기능으로 Run Configuration -> Argument 에 필요한 Data 를 Set 하여
      화면 Input 과 동일하게 처리하는 방법
    • OrzlHB
      조금 이해가 어렵지만 완료!!
    • 틴마
      argument는 인자 parameter은 매개변수로 이용된다 값을 넣으면 코드의 매개변수안에 인자가 들어감
    • 난길
      argument는 인자, parameter는 매개변수이다.
    • 난길
      입력값을 받게 되면 좋은 점은, 사용자입장에서 커스텀된 프로그램을 사용할 수 있다는 것이다.
      입력값에는 음성, 텍스트, 이미지 등이 있을 수 있다.
    • 비더베스트
      argument에 한글을 넣었더니 이클립스가 인식을 잘 못하는 것 같네요. "JAVA APT 507" 은 하나의 argument로 인식하는데 "자바 아파트 507"은 세 개의 argument로 인식합니다. 그리고 제목? 에는 "를 못 쓰게 되어 있어서 그거 때문에 apply가 안됐었네요 저는. ' 안돼서 " 로 바꾸시는 분은 혹시 apply 안되시면 참고하세요!
    • 레이
      2021.04.01
    • chimhyangmoo
      21.03.30
    • 21-03-24
      paramete (매개변수) args
      arguments : 인자
      args의 비밀이 풀리다!
    • 나블
      parameter = 매개변수 = 입력값
    • 심영섭
      왜인지는 모르겠지만 이고잉님이 하신 것과 다르게..? 문자열을 가리는 듯 합니다. 저는 더블쿼트(큰따옴표)로 argument부분을 감쌌는데 에러가 사라졌습니다.
      대화보기
      • parameter: 매개변수. 여기서는 args가 매개변수로 사용됨.
        argument: 그 변수. Java APT 507. 15.0이 입력값.
      버전 관리
      egoing
      현재 버전
      선택 버전
      graphittie 자세히 보기