• Post Reply
  • Bookmark Topic Watch Topic
  • New Topic

doubt on char default value...

 
Konda Golamaru
Ranch Hand
Posts: 36
  • 0
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Hi,

I am little confused how the "ch" value is being calculated at #2,#3.
When I print the "ch" value at #1, it prints nothing.

My doubt is when i print ba[ch] at#3 it should take as ba[null].Not
sure how it is taking the index value for ch is 0 and printing false.

I know that the default value for char is \u0000 (null character).

Any inputs?? Thanks..

import static java.lang.System.*;
public class TestClass12
{
static boolean b;
static int[] ia = new int[1];
static char ch;
static boolean[] ba = new boolean[1];

public static void main(String args[]) throws Exception
{
out.println(" ch :"+ch);//1
boolean x = false;
if( b )
{
out.println("1");
x = ( ch == ia[ch]);
}
else x = ( ba[ch] = b );//2
System.out.println(x+" "+ba[ch]);//3
}
}
 
marc weber
Sheriff
Posts: 11343
Java Mac Safari
  • 0
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Originally posted by Konda Golamaru:
...My doubt is when i print ba[ch] at#3 it should take as ba[null]. Not sure how it is taking the index value for ch is 0 ...

A Java char is really a numeric value that corresponds to a character symbol (see ASCII table). The "null char" has a numeric value of zero. A Java int can obviously have a zero value, but it does not have a "null" value.

An array index is an int. So in the expression ba[ch], ch is converted to type int with a numeric value of zero.
[ June 09, 2007: Message edited by: marc weber ]
 
Konda Golamaru
Ranch Hand
Posts: 36
  • 0
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Hi Marc,

Thank You. I think I am clear now.

--Konda Golamaru.
 
It is sorta covered in the JavaRanch Style Guide.
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic