WWJ268 发表于 2023-10-30 22:30:28

大佬,救救孩子吧

麻烦大佬看看下面的哪里错了
import java.util.Scanner;
public class pta{
    public static void main(String[] args){
      double x;
      double y;
      Scanner myscanner = new Scanner(System.in);
      x = myscanner.nextDouble();
      if( x < 5 ){
            y = x + 5;
            String s = String.format("%.3d",y);
            System.out.println("y=" + s);
      }
      else if(x >= 5 && x < 10){
            y=x * x + x * 0.3;
            String s = String.format("%.3d",y);
            System.out.println("y=" + s);
      }
      else (x >= 10){
            y=x * 5 - 10;
            String s = String.format("%.3d",y);
            System.out.println("y=" + s);
      }
    }
}   

isdkz 发表于 2023-10-30 22:30:39

问题出在第26行,else语句的格式不正确。在else语句后面不应该再跟一个条件,应该直接跟着代码块。正确的写法是将else (x >= 10)改为else。修改后的代码如下:

import java.util.Scanner;

public class pta {
    public static void main(String[] args) {
      double x;
      double y;
      Scanner myscanner = new Scanner(System.in);
      x = myscanner.nextDouble();
      if (x < 5) {
            y = x + 5;
            String s = String.format("%.3f", y);
            System.out.println("y=" + s);
      } else if (x >= 5 && x < 10) {
            y = x * x + x * 0.3;
            String s = String.format("%.3f", y);
            System.out.println("y=" + s);
      } else {
            y = x * 5 - 10;
            String s = String.format("%.3f", y);
            System.out.println("y=" + s);
      }
    }
}


此外,还有一个小问题是在使用String.format方法时,应该使用"%.3f"而不是"%.3d"来格式化浮点数。

WWJ268 发表于 2023-10-30 22:43:09

感谢大佬的帮助
页: [1]
查看完整版本: 大佬,救救孩子吧