2017-11-20 15 views
0

팀입니다 : https://www.sitepoint.com/how-to-declare-variables-javascript/변수는 초기화되지 있지만,이 문서에 따라 권리>

I 선언 내 int 변수의 결과를 초기화; 그런 다음, 즉

if(opCode == 'a') 
result = varX + varY 

그러나, 마지막에 내 인쇄 문은 다음과 같은 오류를 수신하고, 블록 문에서 그것을 값을 할당 :

Error:(32, 28) java: variable result might not have been initialized

덕분에 사전에. 이것은 모든 다른 초보자가 조건문 및 블록 문을 시작하는 데 도움이됩니다. 코드는 아래에 있습니다. 귀하의 변수가 초기화되지

+3

코드는 ** 자바 ** 링크입니다 ** 자바 스크립트 ** - 완전히 다른 것들. –

+1

마지막 else가 값을주지 않아서 초기화되지 않았기 때문에 불평합니다. – dwilliss

+0

사실은 옳지 않습니다. 내 대답을보십시오. –

답변

0

package com.pluralsight.excercise1_conditionalstatements; 
public class Main { 

public static void main(String[] args) { 
    int varX = 10; 
    int varY = 4; 
    int result; 
    char opCode = 'a'; 


    if (opCode == 'a') { 
     result = varX + varY; 
    } else if (opCode == 's') { 
     result = varX - varY; 
    } else if (opCode == 'd') { 
     result = varX/varY; 
    } else if (opCode == 'm') { 
     result = varX * varY; 
    } else { 
     System.out.println("Error, invalid code"); 
    } 
    System.out.println(result); 
} 

}. 조건 중 하나가 충족 될 경우에만 초기화됩니다. 그것이 컴파일러가 불평하는 이유입니다.

선언 할 때 int 값을 지정해야합니다. 예를 들어 :

int result = -1; 
0

이 초기화되지 result 반환의 잠재력을 컴파일 자바입니다.

변수를 int result = 0;으로 선언하면 작동합니다.

System.out.println(result); 

연산 코드가 동일하지 않은 경우, s는, d 또는 m 결과 값을 가져옵니다 결코 우리 당신이 그것을 인쇄하려고보다가 오류를 제공합니다

+0

그래, 그것을 int result = 0으로 변경했지만 int result = null로 변경하면이 오류가 발생합니다. Error : (7, 22) java : 호환되지 않는 유형 : 을 int로 변환 할 수 없습니다 –

+0

@HansAlejandro 알다시피, 나는 자바에서 꽤 오랫동안 여기 있지 않았다. 그에 따라 답변을 업데이트하겠습니다. –

0

문제는이 라인입니다. 그러나 opCode를 'a'와 같게 설정했지만 java는 결과가 값을 얻을 것이라는 것을 알지 못합니다 (물론 볼 수 있습니다). 그래서 당신은 예컨대하기 위해 INT 결과를 변경해야합니다 : 컴퓨터 때문에 다른 문 뒤에 제대로이 정보를주고있다

int result = 0; 
0

을, 당신은 완전히 기능을 종료 성명이 없기 때문에. 그리고 당신은 마지막 println에서 초기화되지 않은 것을 사용하고 있습니다. 사실, 결과가 초기화되지 않고 잃어버린 print 문이 사용되는 포트가 있습니다. else 블록에 return 문을 넣으면 AST는 결과를 사용하는 최종 인쇄 줄에 도달하지 못했음을 알게되고 경고를하지 않게됩니다.