0

what will be the output of the following code?

char x='A'; int m; m=(x=='aa'?'A':'a'); system.out.println("m="+m);

21st May 2019, 12:23 PM
Aman Kumar
Aman Kumar - avatar
6 Answers
+ 1
Anhjje Good thinking ! Though, about the problems, I'm not that sure. For the first one, it may indeed cause an error, but for the second one, every char has an int value associated with it (based on the ASCII table) and thus it may not cause any problem at all as a char can easily be converted into an int. To be sure, I'd cast explicitly the char into an int -> m = (int)(the ternary operator -> ? : )
21st May 2019, 12:46 PM
ThewyShift
ThewyShift - avatar
0
Pseudocode: Line 1 initialize variable of char datatype, call it x and store character A inside Line 2 store a new variable of type integer without initialization Line 3 store the result of ternary operation in variable m which holds an int value If x is 'aa', hold character 'A' inside m , otherwise hold 'aa' Last 4 prints out string m= and the result stored in m Problem 1: Char only stores one character, so 'aa' will result in an error Problem 2: Storing char in int variable
21st May 2019, 12:36 PM
HNNX 🐿
HNNX 🐿 - avatar
0
ThewyShift you are right! The result would be 97 Thanks
21st May 2019, 1:08 PM
HNNX 🐿
HNNX 🐿 - avatar
0
i do not understand the answer please explain the answer though the answer is correct 97
21st May 2019, 1:55 PM
Aman Kumar
Aman Kumar - avatar
0
Each character or symbol you type (a, b, ?, 5, x) has an associated ASCII number in the system a ASCII value is 97 A ASCII value is 65 D ASCII value is 68 Etc
21st May 2019, 2:19 PM
HNNX 🐿
HNNX 🐿 - avatar
0
Aman Kumar The answer is linked to the way we actually list all the characters that exists For that, tables were created. One common table that is used by default by programming language to list char values is the ASCII table. It lists all English letters, as well as ponctuation and spacing (space, new line, ...) As more and more symboles are created and more languages are being supported (Chinese for example), bigger tables were created like UTF-8 and now UTF-16. While ASCII was designed for English people only, those new tables aim to be more complete and universal. There's also differences as more usage depending on the table you refer to (8 bits for ASCII and UTF-8 and 16 bits for UTF-16)
21st May 2019, 2:52 PM
ThewyShift
ThewyShift - avatar