2011-06-11 4 views
0

시간은 hh : mm : ss로 설정되어 시간은 23:50:45로 설정되고 자정에 도달하면 00:00:00으로 설정됩니다. 내 시험을위한 연습 문제는이 작업을 수행하는 방법을 쓰기달라고 부탁했다, 내 논리의 권리 또는 멀리 떨어져, 내 경우 다른 문시간 변경 분 및 초

public void increment() 
{ 
if(seconds <= 59) 
{ 
    seconds ++; 
} 
else if (seconds >= 60 && minutes<= 59) 
{ 
    seconds == 0; 
    minutes ++; 
} 
if(minutes >= 60 && hours <= 23) 
{ 
    hours++; 
    minutes == 0; 
} 
else 
{ 
    hours == 0; 
} 
} 
+0

, 당신의 시계는 문을 사용하지 않는 –

+1

어떤 특별한 이유 "하나 OFF"입니다 귀하의'if' 있도록, 즉 "00"이어야합니다 "60"을 읽어 본 적이한다 ['Date'] (http://download.oracle.com/javase/6/docs/api/java/util/Date.html)? '초 '와'두번째'도 혼합하고 있습니다. –

답변

2

: 그리고

귀하의 코드가된다 (... 제대로 한 곳에서 철자가 일부 지역에서 맞춤법이 틀린 된)이 올바르게 초 철자,

또한
if (hours >= 24) { 
    hours =0; 
} 

으로 마지막 교체 똑같은 일을 훨씬 쉽게 할 수 있습니다.

우선 들어
public void increment() {  
    seconds ++; 
    if (seconds >= 60) 
    { 
     seconds = 0; 
     minutes ++; 
    } 
    if(minutes >= 60) 
    { 
     hours++; 
     minutes = 0; 
    } 
    if(hours >= 24) 
    { 
     hours = 0; 
    } 
} 
3

당신은 '==' 등가 연산자를 사용하여 할당 작업을 수행에 대한 걱정 . 수정하십시오 ... minutes==0; 대신 minutes = 0;을 읽어야하며 '0'을 지정합니다. ==boolean으로 평가됩니다. seconds 대신 몇 자리를 사용했습니다.

this을 참조하십시오! 나는 당신의 논리가 잘못 생각

+0

's/return/evaluate to'. 함수 만 반환됩니다. –

+0

@Matt -> 고마워. : D –

+1

죄송합니다. 지금은 초를 고치겠습니다. 맞춤법 오류는 제게 들썩입니다. 그리고 직장에 나가서 액세스 할 수 없기 때문에 netbeans 또는 다른 어떤 것도 시도 할 수 없습니다. – user445714

1

...

if(secounds <= 59) 
{ 
    seconds ++; 
} 

초를 잘 작성 후 오는 else ifelse을 60로 이동 ... 또는 제거하게됩니다 ...

으로 지적 anirudh4444에 의해 0에 할당하려면 ==이 아니야

나는 모든 <= 조건을 제거합니다.

public void increment() 
{ 
seconds ++; 

if (seconds >= 60) 
{ 
    seconds = 0; 
    minutes ++; 
} 
if(minutes >= 60) 
{ 
    hours++; 
    minutes = 0; 
} 
if (hours >= 24) 
{ 
    hours = 0; 
} 
} 
관련 문제