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

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

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

    - main(string[ ] args) { } 블럭 안에서는 args가 사용자가 입력한 값이라고 선언하는 것
  18. 도공우승9
    완료
  19. 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 -> 즐겨찾기할 프로그램들 체크 해주면 끝
  20. Aaron81
    210513
  21. jeisyoon
    2021.04.29 Program Input & Output - OK

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

      영상에서 사용된것으로 예를 들자면
      args가 변수의 이름인 parameter이고
      run configuration에서 argument에 입력한 "JAVA APT 301" "30.0"은 입력값인 argument이다
    • 깅깅
      제가 이해한게 맞다면
      입력 값을 사용하면 사용자가 프로그래밍에 대해 알지 못해도 input만 입력하면 원하는 output을 얻을 수 있어서 사용자에게 더 편리한 장점이 있는데 다만 입력할 수 있는 input에 대해 잘 알고 있어야 할 것 같아요. 입력 값은 무엇이든 될 수 있지 않을까요? 영상에서 본 것처럼 argument(text..), file, network에서 다운 받은 것, audio, program의 결과 값이나 사진, 영상, 빛 또 기술이 더 발전하면 촉감이나, 향기도 입력 값이 될 수 있을 것 같은데, 이게 제대로 된 질문의 답인지는 모르겠네요ㅋㅋ 강의 진짜 좋아요.. 감사합니다
    • 이현수
      2021.02.24(수)
    • 이형규
      최신 eclipse에서 관련 argument를 넣을 때 여러 단어의 문자열은 홑따옴표가 아니라 쌍따옴표로 묶어야 하더군요. 참고하시길
    • 이토리
      0218 완료!!
    • 아쭈
      Exception in thread "main" java.lang.Error: Unresolved compilation problem:
      JOptionPane cannot be resolved

      at OkJavaGoInHomeInput.main(OkJavaGoInHomeInput.java:11)
      이런 오류가 뜨는데 왜 그럴까요? 복사 붙여넣기 후 IMPORT 했는데도 빨간 밑줄이 계속 뜨네요.. 제발 알려주세용 ㅜㅜ
    • HiTurtle
      argument 지정시 숫자 입력에 대한 문제를 저도겪었습니다.
      에러코드? 메시지를 따라 더듬더듬 이해하려고 하다보니 "" 를 넣어야겠더라구요 저도 왜인지 모르지만 같은 방식으로 해결했습니다.
      대화보기
      • baeroro
        20210206

        parameter(매개변수) -
        argument(입력 값) - 실제 호출되는 값
      • 규영아빠
        20210205 완료

        예전 강의보다 정말 다이나믹 합니다. 감사합니다!!!
      • 초보용
        사정 상 구름ide에서 수업을 받고 있는 한 학생입니다. 그런데 아무래도 자바와 구름의 환경이 다른 탓 인지 위 수업에서의 import javax.swing.JOptionPane; 에서 JOptionPane의 변수를 찾지 못하더군요 혹시 이것에 대한 해답을 아시는 분 이 계실까 하여 글 남겨봅니다.
      • 1. 입력값을 이용한다면 다른 값으로 같은 프로그램을 실행할 때 굳이 코드를 고치지 않아도 되어 편리해진다. (입력값만 바꾸면 되니까) 입력값은 사용자가 직접 키보드로 입력한 것이나 웹사이트에 써진 글을 스캔한 것 등이 사용될 수 있을 것이다.
        2. argument는 사용자가 프로그램 실행 전 미리 값을 정해두어 실행 시 프로그램에 전달하는 인자이다. parameter는 매개변수로, 사용자가 입력한 전달인자를 받는 변수 역할을 한다.
      • submit
        완료!!
      • 1000210002
        2021/01/07
      • 꾸르를꾸
        1. 각기 다른 사용자의 입력값을 넣어 그에 맞춰 출력을 달리 할 수 있다.
        2. 문자열? 정수,실수도 되나?
        3. ?
      • artmaker
        9.1 들어올때마다 코드의 내용을 수정하는 것은 좋은 코드가아니다. 따라서 입력값을 받는게 좋다고하셨고 그 말이 설명을 잘할수는 없어도 무슨말인지 이해를 했다. 저번시간에 배운 형변환이 어떻게 쓰이는지에대해서도 알수 있었다. 그리고 자신이 궁금한 점에대해 핵심키워드를 써서 검색을 하는것이 얼마나 중요한지도 알수있었고 코딩하는데있어 검색이 얼마나 많이 쓰일지에대해서도 알수 있었다. 이코드에 대해선 안보고 한번 코딩을 해보았다 검색하는 과정까지도.

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

        번외) 이유는 모르겠지만 작은따옴표로 인자값을 구분하면 숫자형식오류가 발생해서 큰따옴표로 인자를 구분해주었더니 정상실행이되었다.
      • 아츄
        201223
      버전 관리
      egoing
      현재 버전
      선택 버전
      graphittie 자세히 보기