수다닷컴

  • 해외여행
    • 괌
    • 태국
    • 유럽
    • 일본
    • 필리핀
    • 미국
    • 중국
    • 기타여행
    • 싱가폴
  • 건강
    • 다이어트
    • 당뇨
    • 헬스
    • 건강음식
    • 건강기타
  • 컴퓨터
    • 프로그램 개발일반
    • C언어
    • 비주얼베이직
  • 결혼생활
    • 출산/육아
    • 결혼준비
    • 엄마이야기방
  • 일상생활
    • 면접
    • 취업
    • 진로선택
  • 교육
    • 교육일반
    • 아이교육
    • 토익
    • 해외연수
    • 영어
  • 취미생활
    • 음악
    • 자전거
    • 수영
    • 바이크
    • 축구
  • 기타
    • 강아지
    • 제주도여행
    • 국내여행
    • 기타일상
    • 애플
    • 휴대폰관련
  • 프로그램 개발일반
  • C언어
  • 비주얼베이직

결과값이 왜 이렇게 나오는지 모르겠네요..

사자자리

2023.04.01

학교교재에 나와있는 프로그램입니다.. 분석을 하던중 이상한점이 있어서 그러는데요.. 일단 표시한쪽으로 GoGo!

class Test{
String subject;
int point;

void setPoint(String s, int p){
subject = s;
point = p;
}
String getPoint(){
return subject + : + point;
}
}
class Student{
int id;
String name;
int subnum;
Test test[];

Student(int i, String n, int s){
id = i;
name = n;
subnum = s;
test = new Test[s];
for(int j=0; j s; j++)
test[j] = new Test();
}
String getName(){
return id + : + name;
}
int getGrade(){
int sum = 0;
for(int i = 0; i subnum; i++)
sum += test[i].point;point변수는 다른 클래스인데 어떻게 여기서 불러오죠? 이것도 궁금..이 프로그램에서 배열의
흐름이 어떻게되는지가 아직 확실하지 않아서요..
return sum;
}

int getGrade(int a){ 이 메소드요,, 프린트스코어 메소드로부터 5를 받고
int base = 100 * subnum / a; 100*3(3은 스튜던트생성자에서 3으로 받았기 때문에 3맞죠?)나누기 5하면은 60
int rank = getGrade() / base + 1; getGrade메소드의 반환값이 254(김주현껄 예로들고있어용) 나누기 (60+1=61) 61
return rank;위에서 실행된 값을 정확하게 게산기로 두들겨봐도 4.16어쩌고저쩌고 나오는데 왜
나중에 출력되는 프린트 스코어 메소드에서 5로 출력되는지 모르겠어요.. 저걸 반올림한다쳐도 그냥 4인데
}
void printScore(){
System.out.println(getName());
for(int i = 0; i subnum; i++)
System.out.print(test[i].getPoint() + );
System.out.println();
System.out.println(총점 + getGrade());
int rank = 5;
System.out.println(rank + 단계평가 + getGrade(rank));
System.out.println();
}
}
class Jung{
public static void main(String args[]){
Student kim = new Student(12, 김주현, 3);
kim.test[0].setPoint(국어, 95);
kim.test[1].setPoint(영어, 83);
kim.test[2].setPoint(수학, 76);
kim.printScore();

Student lee = new Student(7, 이 진, 3);
lee.test[0].setPoint(국어, 66);
lee.test[1].setPoint(영어, 97);
lee.test[2].setPoint(수학, 72);
lee.printScore();
}
}
결과값
12:김주현
국어:95 영어:83 수학:76
총점 254
5단계평가 5
아참 그리고

신청하기





COMMENT

댓글을 입력해주세요. 비속어와 욕설은 삼가해주세요.

  • 사랑은아픔

    1. point변수는 다른 클래스인데 어떻게 여기서 불러오죠? 이것도 궁금.. 이 프로그램에서 배열의 흐름이 어떻게되는지가 아직 확실하지 않아서요.. - Student class의 생성자안에서 new Test(); 인스턴스를 생성하셨습니다 또한 Test class에서 point의 접근권한이 디폴트(public)으로 되어있어서 접근이 가능합니다. 게터 세터를 사용하였다면 private로 해야하는데 어차피 그냥 예제니깐요...

    2. int형 254/5+

  • 발랄한그1녀

    아 저도 원인을 찾았어요 ㅋ 님이랑 같은생각으로.. 암튼 감사합니다.. 저기 그건글코 배열문제 말인데요.. 지금 예를 들으신게 저 프로그램상의 메인메소드에서의 시점에서 생각해보라는 뜼이죠? 근데 메인메소드에서는 getGrade라는 메소드를 언급하지않아서 아직도 헷갈려요.. 아 이것만 해결하면 이 프로그램 완벽히 분석끝인데;;

  • 푸르

    아 그렇군요~
    먼저 254/60+1 를 하나하나 뜯어 봐요~
    우선 자바 에서의 산술 연산은 곱하기 나 나누기가 덧셈이나 뺄샘보다 순위가 높아서 빨리 됩니다
    그래서
    (254/60)+1
    과같습니다 그래서
    254/60 이 먼저 실행되죠
    실행값은 4.2333333 이렇게 나옵니다. 그후에 (254/60)+1 부분에서 덧셈이 수행되어
    4.2333+1
    이기때문에
    5.2333
    이 되구요~~
    5.23333 을
    정수형 변수 rank 에 넣기 때문에

  • 싴흐한세여니

    엥 254/60+1한 값을 랭크변수에 대입시키는건데 그 대입된 값에 또 플러스1을 시키라는 말은 없는거 같은데요 헷갈려요.. 그리고 밑에 이진꺼는 저 프로그램대로 하면 3.8정도 되서 반올림하면 4가 나오던데요;; 음,,모가몬지..ㅠㅠ

  • 진이

    이렇게 생각해봐요 254/60+1
    이러면 나누기 먼저 되죠? 나누면 대략 4.1~
    거기다 1 더하면 5.1~~
    이거를 정수형 강제변환시키면~ 소수점은 사라져서 5가 되요 ㅋ

  • 큰재

    b 클래스 에서 a 클래스 안에 있는 test 변수 사용하기,
    class a{
    int test;
    }
    class b{
    A here=new A();
    here.test=3;
    }

번호 제 목 글쓴이 날짜
2699380 메뉴가 계단식으로 나타나요.. ㅠ.ㅠ (5) 스릉흔다 2025-06-25
2699354 영문 웹폰트 관련 질문입니다!!! (1) 치킨마루 2025-06-25
2699329 윈도우 미디어 플레이어 URL 질문!!! (1) 제철 2025-06-25
2699296 동영상 배경 질문드려요!!!!!!!!!!!!!! 핫파랑 2025-06-24
2699214 position:fixed 에 대한 질문입니다.. (7) 사이 2025-06-24
2699183 제이쿼리 이미지 슬라이드 위치값 수정 초엘 2025-06-23
2699153 테마[ADORABLE]에서 페이지생성시 하위페이지는 2개밖에 안되나요? 흰여울 2025-06-23
2699129 네이버 블로그 또는 사이트의 글을 불러오기 갤원 2025-06-23
2699070 탭메뉴처럼 셀렉트 박스를 이용해서 내용을 출력할 수 있는 방법이 있을까요. (3) 큰꽃늘 2025-06-22
2699016 인터넷이 안되는 환경에서 validator설치방법 (3) 은송이 2025-06-22
2698988 대체 C++ 6.0 exe 아이콘은 어떻게 넣는건가요? 외국녀 2025-06-22
2698960 음성파일을 embed로 작업했는데..웹 표준코딩으로 변경하려면 어떻게 해야하나요? (1) 잎새 2025-06-21
2698932 메뉴목록 풍선창 만들기 html (2) 하늘이 2025-06-21
2698901 http://www.zeitgeistbot.com/ 이 사이트처럼 움직이는 효과를 무엇이라고 하나요? 누림 2025-06-21
2698876 table width값 크로스브라우징에 대한 문의 (2) 볼수록매력 2025-06-21
2698849 c언어 질문. (3) 아름나 2025-06-20
2698823 setInterval 이벤트 제거 하려면... 가온길 2025-06-20
2698796 이 오류를 이해를 못하겠어요 Addicted 2025-06-20
2698712 IF 문 이 계속 오류가 나요 (2) 옆집오빠야 2025-06-19
2698687 이미지를 클릭하면 그 이미지를 다운받게해주는 방법 질문요 ^^ (미해결) (5) 해지개 2025-06-19
<<  이전  1 2 3 4 5 6 7 8 9 10  다음  >>

수다닷컴 | 여러분과 함께하는 수다토크 커뮤니티 수다닷컴에 오신것을 환영합니다.
사업자등록번호 : 117-07-92748 상호 : 진달래여행사 대표자 : 명현재 서울시 강서구 방화동 890번지 푸르지오 107동 306호
copyright 2011 게시글 삭제 및 기타 문의 : clairacademy@naver.com