修复了很多问题,在myInt声明中遇到错误,说它无法找到解析方法。我已经添加了随之提到的导入NetBeans,但仍然没有。这是更新后的代码:
import java.util.Scanner;
import java.lang.Integer;
import java.lang.String;
public class Salary {
int salary;
int sales;
public static void main(String[] args) {
Scanner input = new Scanner ( System.in );
double Salary;
Salary salary = new Salary();
System.out.print( "Please enter the amount of items sold by the employees:");
String sales = input.nextLine();
String salesArray[] = sales.split(" ");
Integer myInt = Integer.parse(salesArray[i]);
for(int i=0; i<salesArray.length; i++){
System.out.print(salesArray[i] + " ");
if (Integer.parseInt(salesArray[i]) <= 0) {
System.out.println("Please enter a value greater than zero");}
else {
Salary = (myInt * 0.09) + 200; }
}
}
}
非常感谢所有的帮助,我真的很感激。
答案 0 :(得分:1)
在尝试对其执行数学运算之前,您可能希望将字符串解析为整数(在这种情况下小于或等于)。您可能希望尝试以下方式:
import java.util.Scanner;
public class Salary {
double salary;
int sales;
public static void main(String[] args) {
Scanner input = new Scanner ( System.in );
Salary salary = new Salary();
System.out.print( "Please enter the amount of items sold by the employees:");
String sales = input.nextLine();
String salesArray[] = sales.split(" ");
for(int i=0; i<salesArray.length; i++){
Integer myInt = Integer.parse(salesArray[i]);
System.out.print(myInt + " ");
if (myInt <= 0) {
System.out.println("Please enter a value greater than zero");}
else {
salary = (myInt * 0.09) + 200; }
}
}
}
检查您的解决方案以查看字符串是否等于整数0,它永远不会是,因为它是一个与整数进行比较的字符串。即使你检查了salesArray[i].equals("0")
,这仍然只意味着它完全等于“0”,而忽略了“000”或“0.0”之类的等价形式。你还在你的问题中说过你想要一个“小于或等于”的关系,而不是一个“平等”的关系。只有当字符串完全为“0”时才进行字符串比较。
答案 1 :(得分:0)
salesArray
是字符串数组。 equals
方法应采用字符串,即:salesArray[i].equals("0")
但正确的方法是使用Integer.parseInt(..)
答案 2 :(得分:0)
if (Integer.parseInt(salesArray[i]) <= 0 ) {