优化这段代码import java.util.Scanner; public class Medicine { public static void main(String[] args) { Scanner input = new Scanner(System.in); System.out.print("请输入今天是星期几:"); int i = input.nextInt(); //int i; for (i = 1; i <= 7; i++) { } if (i % 2 ==0) { System.out.println("今天吃半颗药。"); }else { System.out.println("今天吃一颗药。"); } } }
时间: 2024-02-05 19:02:24 浏览: 79
这段代码存在几个问题,可以进行以下优化:
1. for 循环中的 i 变量没有实际用途,可以省略。
2. 输入的星期几应该进行有效性判断,只有在 1~7 的范围内才能进行后续计算。
3. 计算药片剂量的公式可以简化,不需要用到循环。
下面是优化后的代码:
import java.util.Scanner;
public class Medicine {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.print("请输入今天是星期几:");
int dayOfWeek = input.nextInt();
if (dayOfWeek >= 1 && dayOfWeek <= 7) {
int dosage = (dayOfWeek % 2 == 0) ? 1 : 2;
System.out.println("今天需要吃 " + dosage + " 颗药。");
} else {
System.out.println("输入有误,请输入 1~7 中的数字。");
}
}
}
优化后的代码将输入的星期几进行了有效性判断,并且使用了三目运算符简化了计算药片剂量的公式。
相关问题
import java.util.Scanner; public class Main { public static void main(String[] args) {
`import java.util.Scanner;` 这行代码是在Java程序中导入`java.util.Scanner`包的关键字。`Scanner`是Java提供的一种用于处理用户输入的类,它允许开发者从控制台读取数据,如整数、浮点数、字符串等。在`main`函数开始之前,通常会引入这个包以便在程序中创建`Scanner`对象来获取用户的输入。
接下来的`public class Main { ... }`这部分定义了一个名为`Main`的公共类,这是Java应用程序的标准入口点。所有的Java程序都会有一个`main`方法,它是程序运行的起点。在这个类里,你可以编写初始化代码,执行业务逻辑,以及调用其他方法。
在`main`函数的具体内容中,通常会看到类似这样的结构:
```java
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in); // 创建Scanner对象
System.out.println("请输入一些信息:"); // 提示用户
int input = scanner.nextInt(); // 读取用户输入的整数
// 更多的逻辑操作...
scanner.close(); // 关闭扫描器以释放资源
}
```
这里,我们创建了一个`Scanner`实例,并通过`nextInt()`方法获取用户输入的整数值。
改正以下代码 import java.util.Scanner; public class Lab { public static void main(String args[]) { Scanner scnr = new Scanner(System.in); int tempInt; double output; tempInt = scnr.nextInt(); double output = (double) tempInt; System.out.println(output); } }
以下是改正后的代码:
import java.util.Scanner;
public class Lab {
public static void main(String args[]) {
Scanner scnr = new Scanner(System.in);
int tempInt;
double output;
tempInt = scnr.nextInt();
output = (double) tempInt;
System.out.println(output);
}
}
问题在于第7行,double output = (double) tempInt; 中的double output 是重复声明了一个变量,需要删除。
阅读全文
相关推荐
















