package yg;
public class jshv {
public static void main(String[] args) {
// TODO Auto-generated method stub
float i=0,j=0,k=0;
if(i*5+j*3+k/3==100 && i+j+k==100)
System.out.println("分别输出:"+i+","+j+","+k+";");
else
System.out.println("该命令不能执行");
}
}
通过运行,
if语句的用法如下;
if-else 语句引入了一种二义性问题称为空悬else (dangling-else) 问题,这种问题出现在当if 子句多于else 子句时。问题是这些else 子句分别和哪一个if 子句匹配。例如
程序的缩进形式表明程序员相信else 应该与最外面的if 子句匹配,然而在C++中空悬else 二义性由以下规定来解决:else 子句与最后出现的未被匹配的if 子句相匹配。
在本例中if-else 语句实际的计算过程如下
折叠解决方式
要想改变这种缺省的空悬else 匹配效果一种方法是把后来出现的if 放在复合语句中
折叠编码风格建议
总是使用复合语句括号以避免在以后修改代码时可能出现的混淆或错误。