반응형
Java: 루프 초기화를 위해 에서 여러 변수를 초기화하시겠습니까?
다른 타입의 루프 변수가 2개 있으면 좋겠습니다.이 일을 잘 할 수 있는 방법이 있을까요?
@Override
public T get(int index) throws IndexOutOfBoundsException {
// syntax error on first 'int'
for (Node<T> current = first, int currentIndex; current != null;
current = current.next, currentIndex++) {
if (currentIndex == index) {
return current.datum;
}
}
throw new IndexOutOfBoundsException();
}
스테이트먼트의 초기화는 로컬 변수 선언 규칙에 따릅니다.
이것은 합법입니다(재미없을 경우).
for (int a = 0, b[] = { 1 }, c[][] = { { 1 }, { 2 } }; a < 10; a++) {
// something
}
하지만 그 구별을 선언하려고 하는 건Node
그리고.int
원하는 유형은 로컬 변수 선언에 적합하지 않습니다.
다음과 같은 블록을 사용하면 메서드 내에서 추가 변수의 범위를 제한할 수 있습니다.
{
int n = 0;
for (Object o = new Object();/* expr */;/* expr */) {
// do something
}
}
이렇게 하면 메서드의 다른 곳에서 변수를 실수로 재사용하지 않습니다.
이러면 안 돼동일한 유형의 변수를 여러 개 사용하거나for(Object var1 = null, var2 = null; ...)
또는 다른 변수를 추출하여 for 루프 전에 선언합니다.
변수 선언만 이동(Node<T> current
,int currentIndex
)가 루프 외부에 있으면 동작합니다.뭐 이런 거
int currentIndex;
Node<T> current;
for (current = first; current != null; current = current.next, currentIndex++) {
혹은 어쩌면
int currentIndex;
for (Node<T> current = first; current != null; current = current.next, currentIndex++) {
초기화 블록에 선언된 변수는 동일한 유형이어야 합니다.
설계에 따라 for 루프의 여러 데이터 유형을 초기화할 수 없습니다.저는 단지 작은 예를 들겠습니다.
for(int i=0, b=0, c=0, d=0....;/*condition to be applied */;/*increment or other logic*/){
//Your Code goes here
}
언급URL : https://stackoverflow.com/questions/3542871/java-initialize-multiple-variables-in-for-loop-init
반응형
'programing' 카테고리의 다른 글
베스트 프랙티스: PHP에서 긴 여러 줄 문자열로 작업합니까? (0) | 2022.11.25 |
---|---|
Java에서 기본 액세스 수식자는 무엇입니까? (0) | 2022.11.25 |
python(또는 특정 크기의 배열)에서 0 배열을 선언하는 방법 (0) | 2022.11.25 |
"이 페이지에서 벗어나시겠습니까?"를 표시하는 방법" 변경은 언제 커밋됩니까? (0) | 2022.11.05 |
프로젝트에서 MySQL과 Postgre를 모두 사용하는 경우 JsonStringType에서 JsonBinaryType으로 전환SQL (0) | 2022.11.05 |