本人刚学,发个非常小的问题,希望大侠别见笑,我会慢慢成长的public class jay1{
public static void main(String args[]){
int x=10,y=10,z=10;
if(x>9){
y=100;
z=100;

}
else
y=-100;
z=-200;

System.out.printf("%d,%d,%d",x,y,z);
}
}请问为什么输出结果为10,100,-200呢?不懂,希望好心人帮忙呀

解决方案 »

  1.   

    if(x>9){
    y=100;
    z=100;}
    else
    y=-100; //到这里一个if-else语句结束了也就是说无论如何这句z=-200;都是执行的
      

  2.   

    格式的骗术,正规的写法如下:
    public static void main(String[] args) {
    int x=10, y=10, z=10;
    if (x>9) { //<---按照上面的定义将执行这个语句块
    y = 100; //<---将“y”赋值为“100”
    z = 100; //<---将“z”赋值为“100”
    }
    else{ //<---按照上面的定义将不会执行这个语句块
    y = -100;
    }
    z = -200; //<---上面的“if...else...”语句执行结束后,将执行这条语句,将“z”再次赋值为“-200”
    System.out.printf("%d,%d,%d", x, y, z);
    }
      

  3.   

    else后面如果没有{}那么,else的范围只是else后面的第一个分号结束,再后面的语句不属于else范围,
    if,while,for等控制流程语句都是一样道理
      

  4.   

    如果用Eclipse编辑的话 可以用它的格式化功能 个人很喜欢用 呵呵
      

  5.   

    else 后面没有{} ,默认是下面的一行,