2017-03-26 6 views
-8

나는 내 코드 마녀를 실행했다. 그 시퀀스의 첫 번째 마녀이다. 그런 다음 시퀀스의 두 번째 예인 코드를 실행했다. 순서의 두 번째 실행되지만 첫 번째 실행되지 않습니다. 내가 뭘 잘못하고 있니? 나는 코드를 훑어 보았고 중요한 차이점을 볼 수 없었다.이 두 가지 Java 코드의 차이점은 무엇입니까?

public int diff21(int n) { 
    var diff = Math.abs(n - 21); 
    if (n > 21) { 
    return diff*2; 
    } else { 
    return diff; 
    } 
} 
public int diff21(int n) { 
    if (n <= 21) { 
    return 21 - n; 
    } else { 
    return (n - 21) * 2; 
    } 
} 
+0

차이점은 무엇이라고 생각하십니까? 숙제와 굉장히 비슷해 보입니다 ... 그리고'var'은 int이어야합니다. –

+3

자바에서 'var'은 무엇이라고 생각하십니까? Java * Script *와는 다르다는 것을 알고 있습니까? – jonrsharpe

+0

코드를 작성하기 전에 기본 자습서를 읽어야합니다. – Kayaman

답변

1

자바, 당신이 필요로하는 키워드 'VAR'을하지 않습니다 여기에

는 코드 방망이를 코딩 오류가 "2 : 클래스 var에 선 기호를 기호를 찾을 수 없습니다"라고 하더군요 변수를 명시 적으로 선언합니다. 귀하의 경우에는

, 당신은 'INT'

0

var diff 당신이 유형 vardiff라는 변수를 선언하는 것을 의미 할 DIFF를 선언해야합니다. 유형 var은 무엇입니까? 컴파일러는 알지 못하므로 오류가 발생합니다.

+0

고맙습니다. 나는 이것을 시험해 보았지만 옵션이 부족하기 때문에 알고있는 코드로 다시 변경했다. 클래스를 int로 변경하면 누락 된 '}'또는 불법적 인 표현의 시작을 나타내는 또 다른 오류 코드가 나타납니다. 내가 무엇을해도이 오류가 사라지는 것을 막을 수는 없으며 실행되는 코드와 그렇지 않은 코드 사이에 차이점을 볼 수 없습니다. – Trea704

0

var은 Java 원시 데이터 유형이 아니므로 vardouble으로 변경하십시오. int을 사용할 수도 있지만 Math.abs을 입력해야합니다. var 코드는 코드를 실행하면 컴파일되지 않습니다.

테스트하려면 다음과 같이 약간 변경하십시오.

public class Test { 
public static void main(String[]args){ 
    System.out.println(diff21(10) +" "+ diff22(15)); 
} 
public static int diff21(int n) { 
    int diff = Math.abs(n - 21); 
    if (n > 21) { 
     return diff*2; 
    } else { 
     return diff; 
    } 
} 
public static int diff22(int n) { 
    if (n <= 21) { 
     return 21 - n; 
    } else { 
     return (n - 21) * 2; 
    } 
    } 
} 
관련 문제