2014-09-03 2 views
0

내가 읽은 것부터 Java의 ":"는 if/then/else 문으로 사용됩니다. 내 코드에서이 연산자를 표현할 실제 코드로 바꾸려면 뇌의 방귀가 생길 것입니다.if/else 문에이 콜론을 쓸 수 있습니까?

int array[] = new int[]{x,y,z}; 
int neg = 0; 
for (int n : array) 
{ 
    if (n<0) { 
    neg++; 
    } 
} 

기본적으로 배열을 읽고 음수를 나열하려고하지만이 연산자 또는 for 문없이 시도하고 싶습니다. 그 가능성 (배열의 유한 양의 정수를 다룰 때처럼)이 가능하다고 생각하지만 할당이없는 경우 int/n 문으로 int n을 단어하는 법을 완전히 모르겠습니다. 뇌 방귀에있어.

+4

조건 연산자 ('? :')를 for-each 루프와 혼동하고 있습니다. 설명서를 참조하십시오. – SLaks

답변

0

For-Each operator:은 3 진수 연산자 (JLS-15.25) :과 구별됩니다. 당신은 그 NEG에 충실 추가 한 경우 n이 0보다 작은 경우 배열 검사의 각 INT n에 대한 말을하는 코드의 다음 조각에서

// if (n<0) { 
// neg++; 
// } 
neg += (n < 0) ? 1 : 0; 
0

처럼 뭔가를 할 수 있습니다.

for (int n : array) 
{ 
    if (n<0) { 
    neg++; 
    } 
} 

당신은 여전히 ​​

for(int n : array) 

을해야 할거야하지만 그래서 내부 검사를 할 수 n이 0보다 작은 다음 추가 할 경우,로 변환

neg += (n < 0) ? 1 : 0; 

1을 음수로, 그렇지 않으면 0을 더하십시오.

다음은 좋은 예입니다. http://alvinalexander.com/java/edu/pj/pj010018

관련 문제