프로그램 게시판 첫글이 질문글이라 죄송합니다
헤드 퍼스트 책으로 자바를 독학중인데 중간에 막히는 부분이 있어서 질문을 드리려합니다.
일단 코드 전문입니다.
import javax.sound.midi.*;
public class MiniMusicCmdLine {
public static void main(String[] args){
MiniMusicCmdLine mini = new MiniMusicCmdLine();
if(args.length<2){
System.out.println("악기와 음 높이를 지정하는 인자를 입력하세요.");
}else{
int instrument = Integer.parseInt(args[0]);
int note = Integer.parseInt(args[1]);
mini.play(instrument,note);
}
}
public void play(int instrument, int note){
try{
Sequencer player = MidiSystem.getSequencer();
player.open();
Sequence seq = new Sequence(Sequence.PPQ,4);
Track track = seq.createTrack();
MidiEvent event = null;
ShortMessage first = new ShortMessage();
first.setMessage(192, 1, instrument, 0);
MidiEvent changeInstrument = new MidiEvent(first,1);
track.add(changeInstrument);
ShortMessage a = new ShortMessage();
a.setMessage(144,1,note,100);
MidiEvent noteOn = new MidiEvent(a,1);
track.add(noteOn);
ShortMessage b = new ShortMessage();
b.setMessage(128, 1, note, 100);
MidiEvent noteOff = new MidiEvent(b,16);
track.add(noteOff);
player.setSequence(seq);
player.start();
}catch(Exception ex){
ex.printStackTrace();
}
}
}
사운드 재생을 하기위한 코드이며 책에 나와있는 예제입니다.
현재 문제가되는 부분은 저 코드를 실행하였을때
"악기와 음 높이를 지정하는 인자를 입력하세요." 문구가 출력되는 문제이구요.
원래대로라면 저 문구가 아닌 입력을 두개 주었을때 밑의 play 메소드가 실행되어야합니다.
제가 모르겠는 부분은 main의 매개변수인 args가 2이상일때 if else 구문이 작동되어야 하는것 같은데
main의 매개변수인 args가 어떻게 증가? 동작? 하는지 모르겠습니다.
감사합니다.
ps. 질문글이라 본인삭제 불가 체크했는데.. 혹시 이것말고 더 지켜야하는 양식같은게 있다면댓글로 알려주시면 수정하겠습니다.