1、程序有错
2、没错的话出来的是100 321if(i=j) ==> i=j;if(i)
所以 x=x-23;

解决方案 »

  1.   


    i=j 的返回值是 true
    所以执行x=x-23可以这样测试一下
    System.out.println("i=j "+ (i=j)); 
      

  2.   

    100 321
    y=y-21这句少了个分号。
    i=true.
      

  3.   

    我疏忽了,我有2个问题不明白
    1,x,y和i,j有什么关系
    2,(x+" "+y) 是什么意思?
      

  4.   

    为什么true?
    能解释以下吗?
      

  5.   

    if(i=j)
    这句话是把j的值赋给i,
    i的值是false,j的值是true,经过赋值后i的值为true
    相当于
    i=false;
    j=true;
    i=j;  //此时 i=ture
    if(i)  如果是if(i==j) 那么 i==j 的返回值应该是false
    "="是赋值
    "=="是判断两边值是否相等
      

  6.   

    通过对i,j的判断
    而决定该对x,y做出什么动作System.out.println(x+" "+y);
    打印出x和y的值,然后在x和y中间加空格
    结果是100 321
    而不是100321
      

  7.   

    1、x、y和i、j没有关系
    2、System.out.println(x+" "+y);的意思是把x、y转成字符串和空格" "拼在一起。
    整个程序等同于
    boolean i=false;
    boolean j=true;
    int x=123;
    int y=321;
    i=j;
    if(i)
      x=x-23;
    else 
      y=y-21;
    String s = String.valueOf(x) + " " + String.valueOf(y);
    System.out.println(s);
      

  8.   

    本题:
    1 JAVA的旧版本会报错 x+""+y(似乎是1.1至以前)
    2 100 321
      (i=j) == true
      

  9.   

    更正
    2、x+" "+y的意思是把x、y转成字符串和空格" "拼在一起。