Java语法问题:使用&&运算符时提示‘Illegal start of expression’错误
问题分析:
Illegal start of expression 错误原因与修复方案 Hey there, let's break down this error you're hitting with your Java code.
为什么会出现这个错误
Java对if语句的语法有严格要求:整个条件表达式必须被一对完整的圆括号包裹。你写的代码里:
if (valid(num1,base)) && (valid(num2,base)){
编译器会把(valid(num1,base))当成if的完整条件,而后面的&& (valid(num2,base))就成了无归属的代码片段——编译器完全不知道这部分逻辑该依附于什么语句,所以直接抛出Illegal start of expression错误。
怎么修复这个问题
把整个组合条件放进if的括号里就行,两种写法都有效(推荐第一种更简洁的风格):
// 简洁版(推荐) if (valid(num1, base) && valid(num2, base)) { // 你的循环与业务逻辑代码 } // 保留内括号的版本(同样合法) if ((valid(num1, base)) && (valid(num2, base))) { // 你的循环与业务逻辑代码 }
核心就是让A && B这个完整的逻辑表达式,作为一个整体放在if后面的一对括号内。
小提示
写带逻辑运算符(&&/||)的条件判断时,一定要记得把整个判断逻辑都包裹在if的括号里。这是很容易犯的语法小错误,养成习惯后就能避开这类恼人的编译报错了。
内容的提问来源于stack exchange,提问作者Spooky Parallax
相关产品推荐
相关产品推荐

