다음 코드는 else 문으로 들어갑니다. 나는 내가 실수 한 곳을 찾을 수 없다. * 아래의 코멘트에서 실행하고 싶습니다. * B가 아래 주석에서 실행 중입니다. 당신이 if
조건을 만족하지 않는, 그래서 초기화되지 않은 static int
변수는 기본적으로 0
을하기 때문에정적 변수로 인해 Java에서 프로그래밍 오류가 발생했습니다.
package com.java;
import java.util.Scanner;
public class Solution
{
static int n;
static String w[];
public static void main(String[] args)
{
System.out.println("enter no of string between 1 to 50");
Scanner scanner = new Scanner(System.in);
//* A
if ((1<n) && (n<=50))
{
n = scanner.nextInt();
System.out.println("enter " +n+ "strings between 1 to 2000 length");
for (int i=0; i<n; i++)
{
w[i]= scanner.next();
if ((1<w[i].length()) && (w[i].length()<2000))
{
System.out.println("ok");
}
}
System.out.println(w);
}
// *B
else
{
System.out.println("coming due to static");
}
}
}
코드를 올바르게 들여 쓰면 '사례 1'과 '사례 2'의 의미를 파악할 수 있습니다. –
작성한 내용으로 n은 정적이며 값을 변경하지 않으므로 항상 0입니다. – antlersoft