&是同时判断,&&是判断前一个决定判不判断后一个,那这样哪里错了?

&是同时判断,&&是判断前一个决定判不判断后一个,那这样哪里错了?

public class LogicDemo {

    public static void main(String[] args) {

        char x='f';

    //定义一个char类型的变量,并赋初值为'f'

if(x>'a'&x<'z'){

    System.out.println("f是a到z之间的字符!");

}

//如果字符ch在字符‘a’到‘z’之间,则输出提示"x是a到z之间的字符

else{

    System.out.println("不是a到z之间的字符");

}

//否则输出不是a到z之间的字符

}

}


正在回答

登陆购买课程后可参与讨论,去登陆

1回答

同学你好,代码的思路很棒!但是要注意一些小细节,同学的代码中if语句的括号使用了中文的括号并且里面的输出语句的分号;也使用了中文的,这两个是不正确的。应该使用英文下的符号。具体如下:

http://img1.sycdn.imooc.com//climg/5d6cda7f00013c7a05390152.jpg

另外,建议同学还是使用&&进行判断,可以提高效率。

修改后的代码如下:

public class LogicDemo {

	public static void main(String[] args) {

        char x='f';

    	//定义一个char类型的变量,并赋初值为'f'

		if(x>'a'&&x<'z'){

		    System.out.println("f是a到z之间的字符!");

		}

		//如果字符ch在字符‘a’到‘z’之间,则输出提示"x是a到z之间的字符

		else{

		    System.out.println("不是a到z之间的字符");

		}

		//否则输出不是a到z之间的字符

		

	}

}

如果我的回答解决了你的疑惑,请采纳!祝学习愉快!

  • A哥s 提问者 #1
    范围问题不是两个必须同时满足吗?&&是一个满足就执行,不是吗?
    2019-09-02 19:29:16
  • 好帮手慕酷酷 回复 提问者 A哥s #2
    同学你好,&&短路运算符,与操作,当只有满足两边的条件都为true时,整个表达式才为true。如果其中一个判断为false,则整个表达式都为false。&&的短路表现在如果左边的表达是为false,然后将不再执行右边的表达式。例如:x为字符‘1’,则在第一个判断x>'a’中就是不成立的,也就不再需要判断x<'z'的表达式,可以提高运行效率。如果x为字符‘f’字符,则第一个判断成立,还会继续判断第二个表达式x<'z'的。如果我的回答解决了你的疑惑,请采纳!祝学习愉快!​
    2019-09-03 09:57:10
  • A哥s 提问者 回复 好帮手慕酷酷 #3
    意思是说&是无论如何两边都要判断吧,&&前面错了就返回false,&&前面对了再判断后面的。
    2019-09-03 10:59:33
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师