생활코딩

[생활코딩] 11. 입력과 출력

주니어주니 2022. 8. 8. 16:08
  • 11.1. 입력과 출력

INPUT → PROGRAM → OUTPUT

 

프로그램은 들어오는 정보(인풋)을 이용해서 출력(아웃풋)을 만들어내는 것.

 

INPUT : Argument, File, Network, Audio, Program
OUTPUT: Monitor, File, Audio, Program

 

만약,

String id = "JAVA APT 507"

에서 변동이 있을 경우에 프로그램을 실행할 때마다 자바 아파트 내용을 수정해야 하는 불편함이 있을 수 있음.

 

  • 프로그램을 실행할 때, 팝업이 뜨면서 거기에 어떤 텍스트 정보를 입력하면 ID값을 세팅하는 방법

구글링  "java popup input text swing"

 

그리고 코드 복사 (그런일을 해주는 자바의 기능인 swing)

먼저 있던 okjavagoinhome과 비교하기 위해 저걸 복사해서 ~~input.java를 만듦

 

그리고 나서

String id = java apt 를

String id = JOptionPane.showInputDialog("Enter a ID");

(show:보여주다, input:입력하다, dialog:윈도우같은 대화상자, "~":창에 뜨는 텍스트)

 

이때 오류가 뜸 (joption을 사용할 수 없기 때문)

joption위에 마우스를 갖다대고 import 어쩌구 클릭하면

맨 위에 import ~ 어쩌구가 뜸

그리고 나서 저장 후 실행하면 팝업이 뜸 !!

사용자가 입력한 값에 따라서 다른 기능을 하는 것

 

입력값을 여러 개 넣고 싶으면?

 

예를 들어, 밝기를 조절할 수 있는 전등이 있다고 치자.

DimmingLights

moodLamp.setBright(10); 이라고 하면 10퍼센트만큼 밝아짐

근데 얘도 프로그램 실행시킬 때 입력할 수 있게 하고싶다

 

위에 Strign id 어쩌구 밑에 똑같이

String bright 한 다음,

setBright(bright)를 입력

근데 오류가 뜸.

얘는 double(실수)이 와야되는데 우리는 string(문자열)을 가져왔음.

그럼 string -> double 로 convert해야함

 

구글링

'java string to double conversion'

Double.parseDouble(text); 이 값을

setBright( ) 안에 넣어주고

text-> bright

 

※ 입력값 사용 시 장점: 변수 값을 일일이 바꿔주지 않아도 됨

※ 입력값 형태: int(정수), char(문자), string(문자열), double(실수)

 

ex) 자바 아파트 1004호의 무드등 밝기를 10으로 하고 싶을 때

enter a id = java apt 1004

enter a bright level = 10

 

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();
	}

}

 

  • 11.2. 입력과 출력: arguments&parameter

이클립스에 내가 실행하는 것들을 미리 정리, 정의해놓을 수 있음

 

실행(run) 옆 목록버튼 → run configurations → java appicaiton 중 지금 하고있는 클래스

→ arguments → "Java APT 507" "15.0" (매개값 2개) → NAME: OKJavaGoInHomeInput - 'Java APT 507' '15.0'

→ apply → run → String id = args[0]; String bright = args[1];로 수정

→ elevator myelevator 줄에 break 걸고 디버그 하면

→ args 가 [0]은 "Java APT 507" , [1]은 "15.0"

→ id 는 "Java APT 507"에, bright는 "15.0" 에 제대로 연결

 

String[] args -> paramter = 매개변수

매개값을 받으려면 갯수만큼

String id = args[0]; (0부터 시작함)

 

∴이클립스에서 run configurations로 들어가서 argument (인자)를 설정하면, args라는 parameter(매개변수)를 통해 그 값들을 활용할 수 있다.

* arguments: 사용자와 컴퓨터가 서로 이해할 수 있는 "변수"

* configuration -> argument에서 직접 변수를 지정해놓을 수 있음