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
    String id = args[0];
    String bright = args[1];

    run configuartions-argument 원하는값 프리설정
  2. 선대범
    강의1 : JOptionPane.showInputDialog, 빨같 밑줄 참고(import)
  3. 영철이
    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
  4. yechubot
    argument - 인자
    parameter- 매개변수
    parmeter를 통해 argument 값을 받는다.
  5. dofvmrhwk
    이해 아직 잘 안되지만 다음에 한번더 들어야 겠어용ㅎㅎ
  6. 박수찬
    팝업이 뜨면서 텍스트를 입력하고 싶다. swing
    showInputDialog

    arguments & parameter
  7. 브라이언
    큰따옴표로 완료.
  8. 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
    • 소금설탕
      완료. 고맙습니다. 반복해봐야겠어요...
    • 윌리엄
      매개변수(parameter)가 variable이라면 전달인자(argument)는 value이네요.
      public static void main(String[] args) {

      }

      에서 args는 main 메소드를 정의할 때 사용된 매개변수입니다.( f(t)=t+2, t=x*x+2x+1 에서 f(t) 안의 t를 매개변수라고 하듯이 ) 여기서 매개변수가 여러 개 사용되면 그 집합을 매개변수 목록(parameter list)라고 하고요.
      그리고 함수를 호출할 때, 여기서는 프로그램을 실행했을 때 main 메소드가 호출되며 args에 들어있는 전달인자들이 사용됩니다.( f(4) 에서 전달인자는 4 ) 여기서 전달인자들이 여러 개 사용되면 그 집합을 전달인자 목록(argument list), 여기서는 배열로서 설명합니다.(내용이 부정확하다면 지적해주시면 고맙겠습니다.)

      표준 입력은 아니지만, 영상에선 표준적인 입력 방식이라고 말한 이유는 swing이나 scanner가 있기 전에 자바에서 입력 값을 받던 방식이라서 그렇게 부르는 건가요? 직접 변수에 값을 매기는 방법과 비교했을 때, 인자를 사용하는 방식은 비슷한 거 같기도 하고.. 사용자가 입력하려는 값을 인자라고 따로 부르면서 사용하는 이유가 궁금해요.
    • 완료! 감사합니다^^
    • 정훈
      Run configuration에서
      Duplicate 해서 만든거는 arguments 테스트를 위해서 있는거죠?
      Project explorer에서는 보이지가 않아서...

      강의 감사합니다.
    • 또 한 번 들어봐야겠네요 ㅎ
    • 쑤우
      수강완료. 감사합니다~
    • dlehddnqkqn@naver.com
      저는 ' ' 작은따옴표는 안되고 " " 큰따옴표로만 되네요
    • dmdlwlwl
      작은따옴표 큰따옴표 둘 다 해봤는데 왜 따로따로 잡힐까요... 답답해죽겠네요
      Version: 2019-09 R (4.13.0)
    • 거룩한깜상
      실행은 잘 되는데 디버깅 할 때 마다 콘솔창에 붉은색으로 "JRE Oracle Corporation/13.0.1 is not supported, advanced source lookup disabled."라는 에러메세지가 뜨는데 왜 이런지 아시는 분 계신가요 ㅠㅠ
      jdk를 다시 다운받아야 하는건가요??
    • 햄쮸맨
      이고잉님이 대단한게 어려운 말,필요 없는 지식 쏙 빼고 필요한 기능만 알려주시는 것 같아요. 결국 나중에 디버깅이나 실행할때 이 기능 쓸게 뻔한데 지금 당장 파라메터니 아규먼트니 정확한 정의 몰라도 기능 자체 쓰는 법은 제대로 알려주시니 대단한 것 같습니당.뭐 저런 정의는 직접 인터넷 검색하면서 직접 곱씹어야 자기 것이 되니까요!근데 뭔가 이렇게 직접 찾아보니 결국 클래스,메소드,패키지 개념 이런 것들 더 공부하고 객체지향 언어가 무슨 뜻이고 그게 어떤 점이 좋은지 뭔가 더 알고 싶어졌어요!
    • 햄쮸맨
      그런데 궁금한게 생겼어요. 이건 좀 정말 쓸데없는 질문이지만 실행 환경 설정(run configuration)에서 직접 매개변수에 인수값 "JAVA APT 507" 넣어주는 건 이해가 됐는데요.showInputDialog("Enter a ID"); 이 메소드(메소드 맞나요? 이게 중요해요!!!!)를 이용해서 같은 값 "JAVA APT 507"이라는 값을 넣었을때 그 값도 인수라고 부를 수 있나용?
      저는 여기선 "Enter a ID"가 매개변수 자리여서 인수라 불러도 되는거 같아요. 결국 두번째 영상에서 배운건 메소드를 통해서 값을 삽입하는 간접적인 방법 말고 실행 환경 설정에서 직접 인수를 넣는 방법을 배운거군요! 테스트 할때 조건을 바꿔가면서 하기 편하게!
    • 햄쮸맨
      args=arguments인가보네요! 그리고 parameter 즉 매개변수를 통해서 arguments 즉 인자를 넣어준다고 하셨죠? 결국 이해를 해보자면 x,y에 관한 함수 t가 있다고 하면 t(x,y)에서 x,y는 매개변수(parameter)고 거기에 실제로 특정 값, 예를들면 x=3,y=4를 넣어주면 3과 4가 arguments가 되는 거고요.그리고 더 다아가서 함수t는 자바로 치면 메소드가 되는 걸까용? 아직 메소드에 대해서는 이해가 부족한 것 같아요. 그래도 arguments랑 parameter는 확실히 이해가 된 것 같아요.
    • acarose5291@naver.com
      놀랍습니다.!! 감사합니다.~~
    • 변수값을 바꾸고싶을때 JOptionPane 을 이용해 팝업에 변수값 넣게 설정가능.
      테스트할때 args 를 이용해 변수를 만들어 그 값을 바꿔가며 여러 버전 테스트도 가능
    • Lifie9
      args[]을 이용하는게 엄청 편리하네요
    • Jasmine son
      저도 작은 따옴표(' ')가 실행이 안되어서 두가지로 작동시켜서 해결이 되었네요.감사합니다:)
      1. 작은 따옴표(' ') +큰따옴표 (" ") /작동
      2. 모두 큰따옴표(" ") /작동
      참고해 주세요!!!
    • 코딩잘하고싶다
      오오 저도 작은 따옴표(' ')로 묶었는데 단어들이 다 분리가 되어서 인식했는지 args가 4개로 나왔는데 큰따옴표(" ")로 고치니까 args 2개로 맞게 나왔습니다. 댓글 정말 감사합니다!!! :)
      대화보기
      • 이만수
        Program arguments에서 작은따옴표로 묶었는데도 각 단어가 각각 할당 되어서 쌍따옴표 바꾸니 한 묶음으로 작동하였습니다. 이클립스 버젼에 따라 차이가 있는 걸까요. 참고하세요!
      버전 관리
      egoing
      현재 버전
      선택 버전
      graphittie 자세히 보기