Как мне получить это заявление ЕСЛИ работает? - PullRequest
0 голосов
/ 30 сентября 2011

Исправлено много ошибок: во время объявления 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 ]

1 голос
/ 30 сентября 2011

Скорее всего, вы захотите проанализировать строку до целого числа, прежде чем пытаться выполнить математические операции над ней (в этом случае меньше или равно).Вы можете попробовать что-то вроде:

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».

0 голосов
/ 30 сентября 2011
if (Integer.parseInt(salesArray[i]) <= 0 ) {
0 голосов
/ 30 сентября 2011

salesArray - это массив строк. Метод equals должен принимать строку, то есть: salesArray[i].equals("0")

Но правильный способ - использовать Integer.parseInt(..)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...