import java.util.Scanner;
public class divide {
public int max(int a, int b) {
return Math.max(a, b);
}
public static void main (String[] args)
{
Scanner sc = new Scanner(System.in);
int a = sc.nextInt();
int b = sc.nextInt();
int max = max(a, b);
system.out.println(max);
}
}
Exception in thread "main" java.lang.Error: Unresolved compilation problems: Cannot make a static reference to the non-static method max(int, int) from the type divide system cannot be resolved at divide.main(divide.java:14)
이렇게오류나는데용
아 max 함수예 static 안썼다 써넣고 다시 실행햐바
오 되네용 이거 System 대문자오타랑 static 이었네요 혹시 설명해주실수있나요
아까 네가 쓴 코드에서 numbering 함수에서 Scanner로 값을 받아와서 a랑 b에 넣었는데 이게 numbering a랑 b가 이 함수 내부에서 선언되어서 numbering 밖에서 접근할 수가 없고 함수가 종료되면 변수 자체가 메모리에서 제거가 되버림
그래서 a, b, Scanner를 main에서 쓸 수 있도록 main 내부에서 선언하도록 코드를 고쳤음
이 댓글은 게시물 작성자가 삭제하였습니다.
아 그럼 위치가 문제였군요 혹시 메소드 작성할때 리턴값이 어떤역할인지 궁금해요
메소드의 리턴값은 함수를 호출하고 그 함수의 실행이 끝났을 때 함수가 있던 자리에 그 값을 대신 있게 할 것을 정하는거임
+ 메소드 역활이 c함수라고 보면되나요??
내 맞아요
역할
아그럼 미리 메소드 선언한후에 그걸 메인에서 호출하ㄴ면되겠네요 저기 int max처럼요!
네 맞워요
메서드를 공부하고 싶은거면 numbering에서 전부 실행하고 맥스값까지 리턴하게 만들어서 main은 출력만 하게하는게 니가 원하는 방향에 가까울거임
진짜 날강도같은데 마지막으로 지식 더 빨아먹을게여ㅠㅠ 문자열 역순출력하는건 어떻게 정의하면되나요? strung getname(){return ㅁㄴㅇㄹ}이런식으로 짜서 출력을어떻게해야될지모루겠오ㅓㅛㅇ
for (int i = str.length()-1; i>=0; i--) { System.out.prㅇint(str.charAt(i)); } 여기서 str은 문자열 담고있는 변수에요
프린트에서 ㅇ 빼고 실행 ㄱ 프린트 써져있으면 댓글 안달아지내
넘버링에서 전부실행하고 맥스값리턴하라고 만들라고하셨는데 넘버링에서 메소드 추가한후에 main에서 출력하라는 말씀이시죠??
ㅇ 아마 과제면 원하는게 그거일거임 답만 내면 그만이지만
그리고 그 메소드안에서도 newscanner 로 입력받을수있나요?
내 있워요
보이드 빼고 public static int numbering()형태로 아까 니가 짠거 그대로 짜고 그 안에 int max 만들어서 Math.max(a,b)값 주고 return max 해주면 됨 출력은 main메서드에서 system.out으로 하고
정리한번할게여 그럼 넘버링 함수를 안쓰고 매소드만 선언한후엥 매인에서 선언도되나여?
댓글 쓰신게 먼 소린지 모르겠워요
ㄴ
메서드만 선언하고 몸통은 비운 다음 오버라이드 시킬 수 있긴한데 니가 보여준 문제 수준으로 봐서는 아직 거기까지 안 간거 아님?
메소드는 클래스안에만 선언하면되나요? 그럼 아까 int max (int a , int b){
그 메소드하나에 입력받고 math.max이런거도 쓸수있나여?
내 메소드 하나에서 다 할 수 있어여
1.사전 작업하면 메인메서드 안에서도 메서드 선언 가능함 2.니 말 이해는 잘 안되는데 형식만 지키면 메서드 내에는 아무거나 다 우겨넣을 수 있음
옹 public static int max( Scanner sc = new scanner int a= nextInt(), int b= nextInt()){return Math.max(a,b);} 이런식으로만들어지는지가 궁금했어용
소괄호 안에있는 걸 중괄호 안으로 옮기면 가능해져요
됨 리턴에 괄호는 빼라
저기는 리턴값만오는곳아닌가요?
중괄호에 리턴말고 다른거 다 넣을 수 있어요 메인에 있는거 다 넣어도 되요
걍 괄호가 이상한데 대충 굴려봐 뭐 말하는지는 알겠음 니가 말한 방향으로 된딘는것만 알면 되는거니까
그럼 그 함수랑 차이가 있나요? public static int max(int a, int b ){return Math.max(a,b)Scanner sc = new scanner int a= nextInt(), int b= nextInt();} 이렇게 짯는데 오류나용 ㅠ
매개변수에 넣어놓은거 메소드 안애서 선언할거니 쓸 필요없고 한 문장을 끝낼때는 세미콜론 ;를 붙여야 되고 return을 쓰면 바로 함수가 종료되서 그 밑에있는거 실행이 안되고 아래에서 선언한 변수는 그 위에서 사용 못해요
public static int max(){Scanner sc = new Scanner(System.in); int a= sc.nextInt(); int b= sc.nextInt(); return Math.max(a,b);}
public static int max( ){return Math.max(a,b)Scanner sc = new scanner int a= nextInt(), int b= nextInt();} 이렇게 매개변수 없애는건이해했느데 새미콜론이후는 이해잘못했어요...
Scanner에 System.in도 써야되고 nextInt() 메소드 쓰려면 스캐너애 꼭 붙여야되요
변수를 int a = 1; 이렇게 선언하잖아요? 그럼 그 변수는 그 아래줄에서만 쓸 수 있어요 변수를 선언하기 전인 윗쪽 줄에서는 a를 사용할 수 없어요
줄1; 줄2; int a=1; 줄3; 즐4;
이렇개 있으면 이 변수는 변수를 선언한 줄, 줄3 줄4, 그 아랫줄애서 쓸 수 있는거애요
댓글로 앤터 못쳐서 줄 구분이 이상허긴 한데 암튼 이래요
아 저순서구나 설명고맙습니다 늦은밤에ㅠㅠ
나중에 이런거 어떻게 우회하는지 배울 수 있을거에요 공부 열심히하세요
설명 도와준 통피 아저씨도 ㄱㅅㄱㅅ
이 댓글은 게시물 작성자가 삭제하였습니다.