BlueJ中printf语句编译报错:')' expected问题求助
解决BlueJ中printf语句的')' expected错误
嘿,我看到你在开发披萨店收银机应用时遇到了编译错误,咱们来一步步把它搞定!
首先聚焦你标记的那行问题代码:
System.out.printf (Size + ", " + crust + " Pizza with " + Top1 + " and " + Top2 ": $%.2f", cost);
1. 直接触发编译错误的原因
你在Top2和": $%.2f"之间漏掉了一个字符串拼接的加号(+)。编译器解析到这里时,无法识别后续的字符串是拼接逻辑,误以为语法结构不完整,所以抛出了')' expected的错误。
修正后的该行代码应该是:
System.out.printf(Size + ", " + crust + " Pizza with " + Top1 + " and " + Top2 + ": $%.2f", cost);
2. 隐藏的逻辑bug(必须修正!)
除了上面的语法错误,你的所有if/else if条件判断都用错了运算符:你用了赋值运算符=,而不是用来做判断的比较运算符==。
举个例子:
// 错误写法:把0赋值给NofTopp,这个条件永远为true if(NofTopp = 0){ // 正确写法:判断NofTopp的值是否等于0 if(NofTopp == 0){
如果不修正这个问题,你的代码逻辑会彻底混乱——第一个if会强制把NofTopp设为0,并且这个条件永远返回true,后面的else if分支永远都不会被执行。
修正后的完整代码片段
System.out.println(); System.out.println (" Order Summary "); System.out.println (" *************************"); System.out.println (); if(NofTopp == 0){ System.out.printf( Size + ", " + crust + " Cheese Pizza : $%.2f", cost); System.out.println(); }else if(NofTopp == 1){ System.out.printf( Size + ", " + crust + " Pizza with " + Top1 + ": $%.2f", cost); System.out.println(); }else if(NofTopp == 2){ System.out.printf(Size + ", " + crust + " Pizza with " + Top1 + " and " + Top2 + ": $%.2f", cost); System.out.println(); }else if(NofTopp == 3){ System.out.printf( Size + ", " + crust + " Pizza with " + Top1 + ", " + Top2 + " and " + Top3 + ": $%.2f", cost); System.out.println(); } System.out.printf ("Tax: $%.2f",SalesTax ); System.out.println(); System.out.printf ("Total: $%.2f",totalCost ); System.out.println();
现在把这段代码复制到BlueJ重新编译,应该就能顺利运行啦!
内容的提问来源于stack exchange,提问作者smileyface896
相关产品推荐
相关产品推荐

