>
이 코드를 수정하여 다음 배열 인덱스에 쓰는 방법은 무엇입니까? 나는 자바에서 멍청한 놈이다. 예를 들어, 기본 메소드 에서이 메소드를 호출하므로 처음 실행될 때 배열의 인덱스 1에 씁니다. 두 번째로 실행될 때 배열의 인덱스 2에 씁니다. 그러나 루프가 반복되는 것을 원하지 않습니다. 또한 배열 목록을 아직 배우지 않았으므로 불행히도 그림에서 벗어났습니다.

public class staffName {
  public static void staffDetails(){
       String[] staffname= new String[20];
       int i=0;
       staffname[i]=JOptionPane.showInputDialog(null,"Please enter staff name:")
       i++;

}

  • 답변 # 1

    함수를 0으로 호출 할 때마다 변수 i를 설정합니다. 따라서 항상 요소 0 만 변경합니다. 변수 i를 함수 외부에 놓고 정적 상태로 만들어야 함수를 호출 할 때 증가하고 증가 상태를 유지합니다. 또한 배열 staffname을 외부에 두어야합니다. 그렇지 않으면 함수를 호출 할 때마다 빈 배열을 새로 만듭니다.

    public class staffName {
        public static int i = 0;
        public static String[] staffname= new String[20];
        public static void staffDetails(){
            staffname[i] = JOptionPane.showInputDialog(null,"Please enter staff name:");
            i++;
        }
    
    

  • 답변 # 2

    메인에서 어레이를 한 번만 정의하고 다음과 같이하십시오 :

    public class staffName {
    private static int i = 0;
    String[] staffname= new String[20];
     public static void staffDetails(String[] array){
        array[i] = JOptionPane.showInputDialog(null,"Please enter staff name:")
        i++;
     }
    }
    
    

  • 답변 # 3

    calling this method from my main method, so the first time it is run, it writes to index 1 of the array. the second time it is run, it writes to index 2 of the array.

    문제는 배열이며 둘 다 메소드 staffDetails() 가되면 범위가 없어집니다.  그 일을한다.

    옵션 1 : 배열과 인덱스를 매개 변수로 보내는 것을 고려하십시오

    public static void staffDetails(final String[]staffname, final int i){
           staffname[i] = JOptionPane.showInputDialog(null,"Please enter staff name:");
    }
    public static void main(String[]args){
        final String[]staffname=new String[20];
        int i = 0;
        staffDetails(staffname,i++);
        staffDetails(staffname,i++);
    }
    
    

    옵션 2 : 클래스/정적 멤버로 배열 및 인덱스 만들기

    public static void staffDetails(){
           staffname[i++] = JOptionPane.showInputDialog(null,"Please enter staff name:");
    }
    public static void main(String[]args){
        staffDetails();
        staffDetails();
    }
    private static final String[]staffname=new String[20];
    private static int i = 0;
    
    

  • 이전 javascript - VueJS에서 구성 요소 목록을 반복하는 방법
  • 다음 클래스 내 Kotlin 확장 기능 테스트