JAVA流程控制的问题

[复制链接]
查看11 | 回复5 | 2011-2-24 11:36:24 | 显示全部楼层 |阅读模式
第一题case后面接的是常量,y和y+1都是变量,final 修饰的变量就是常量。第二题boolean类型数据默认值是false,注释1和注释2处得if语句都通过,此时b1为true,b2为false,因此注释3处if语句不通过,注释4处是b2=true而不是b2==true,所以通过,x为101.public class Hello{ static boolean b1; static boolean b2; public static void main(String args[]) {int x=1;if(!b1)//1{ if(!b2)//2 {
b1=true;...
回复

使用道具 举报

千问 | 2011-2-24 11:36:24 | 显示全部楼层
1:为什么case y 和case y+1行编译错误y和y+1是变量,而case的参数只能是常量(而且时编译时就必须初始化的常量)!!所以会报错.报错内容:case expressions must be constant expressions.2:输出结果101;流程:开始b1,b2为默认值false(非常不建议用默认值,程序可读性和可维...
回复

使用道具 举报

千问 | 2011-2-24 11:36:24 | 显示全部楼层
第一题:case后面跟的表达式必须是确定的,即常量,而你的y是个变量,所以报错,你的x之所以没有报错是因为你声明的x为常量第二题:你只要记住java中boolean类型的变量默认值是false问题就迎刃而解了,也就是说你声明了一个boolean变量但是没有给它赋值,那么它默认的是false……楼主再认真分析下答案就出来了加油!...
回复

使用道具 举报

千问 | 2011-2-24 11:36:24 | 显示全部楼层
1)因为你定义y的时候,不是final的,而case里面必须是个固定值修改方法:public final static int y = 1;加上final关键字即可2)所有boolean类型默认为false重点理解在这里,if (!b1) { //b1 = truex = x + 10;} else if (b2 = tr...
回复

使用道具 举报

千问 | 2011-2-24 11:36:24 | 显示全部楼层
为什么case y 和case y+1行编译错误 :需要常量表达式public class Hello{ static boolean b1;//默认false static boolean b2;//默认false public static void main(String args[]) {int x=1;...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行