aspose file tools*
The moose likes Beginning Java and the fly likes Return Types Exam Question Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login


Win a copy of Spring in Action this week in the Spring forum!
JavaRanch » Java Forums » Java » Beginning Java
Bookmark "Return Types Exam Question" Watch "Return Types Exam Question" New topic
Author

Return Types Exam Question

John Cochrane
Greenhorn

Joined: Jan 21, 2005
Posts: 8
Hi,

I'm studying for my Sun Certified Programmer exam and am going through some test questions, one of which I can't figure out at all. It goes as follows:

14 long test (int x, float y) {
15
16 }

which two of the follwoing lines, inserted independatly, at line 15 would not compile? (Choose two).

A. return x;
B. return (long) x/y;
C. return (long) y;
D. return (int) 3.14d;
E. return (x/y);
F. return x/7

The answers are B and E. I can't understand what the difference is between E and F! Surely they both return a float???

Cheers,

John
Vijayendra V Rao
Ranch Hand

Joined: Jul 04, 2004
Posts: 195
Originally posted by John Cochrane:
I can't understand what the difference is between E and F!


Option E: division looks like this: integer / floating-point number

Option F: division looks like this: integer / integer

Figure out the answer?


Vijayendra <br /> <br />"The harder you train in peace, the lesser you bleed in war"
John Cochrane
Greenhorn

Joined: Jan 21, 2005
Posts: 8
Thanks for the reply but I'm still confused. What if x = 9? The result would be 1.28571... which is a double so wouldn't that cause an error if you try to fit that into a long??
Vijayendra V Rao
Ranch Hand

Joined: Jul 04, 2004
Posts: 195
will it? Why don't you try the following piece of code?
truncated. If you wish to have a good deal of insight into these conversions, then I would suggest you look Language Specifications. So if you look through the language specs, chapter 5 of it will explain stuff in a very clear manner. Hope this helps
John Cochrane
Greenhorn

Joined: Jan 21, 2005
Posts: 8
Thanks for the reply. I obviously need to do a bit more reading on the subject :-) I've got the exam tomorrow so I'm panicing a bit now. I tried the link that you gave me but it took me to the api specs. Was this intentional? I can't find a chapter 5 (I'm not that familiar with the java docs).
Vijayendra V Rao
Ranch Hand

Joined: Jul 04, 2004
Posts: 195
Originally posted by John Cochrane:
Was this intentional? I can't find a chapter 5 (I'm not that familiar with the java docs).


Oh I am very sorry I forgot to mention where you need to navigate to. Let me provide the direct link to that page:

http://java.sun.com/docs/books/jls/second_edition/html/jTOC.doc.html

You get this page after a series of navigations from the API pages
Layne Lund
Ranch Hand

Joined: Dec 06, 2001
Posts: 3061
Integer division is a strange creature until you get used to it. The way I think about any operation is that the two operands (on the left and right of the operator) MUST be the same type. The result is also the type of the two operands. In many of the choices as answers to this question, the operands aren't the same type. However, Java has several rules that allows it to convert between primitive types automatically. In the case of x / 7, this conversion is not necessary, though, since both x and 7 are ints. This also means the result will be an int (not a double). So how do we get an int value when x does not divide by 7 evenly? The answer is truncation; the remainder is ignored. So in your example, 9 / 7 is 1! You can see this by compiling and running Vijayendra's code example above.

HTH

Layne
[ January 21, 2005: Message edited by: Layne Lund ]

Java API Documentation
The Java Tutorial
John Cochrane
Greenhorn

Joined: Jan 21, 2005
Posts: 8
All is now clear. Thankyou very much for your help :-)
 
I agree. Here's the link: http://aspose.com/file-tools
 
subject: Return Types Exam Question