我如何让这个IF声明工作?

时间:2011-09-30 19:44:09

标签: java arrays math if-statement

修复了很多问题,在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; }
   }

}

}

非常感谢所有的帮助,我真的很感激。

3 个答案:

答案 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 ) {