2015-12-03 2 views
0

Мне нужно написать код, который вводит пользователей в число цифр и добавляет их, отображает количество положительных, отрицательных, нулевых и количество количества введенных чисел пользователь вводит букву «e». Я не уверен, если то, что я до сих пор является правильный путь (он еще не компилировать), но это то, что я до сих пор:просит пользователя ввести ints, а затем подсчитать их

public static void main (String[] args){ 
     Scanner input = new Scanner(System.in); 
     int negative = 0; 
     int positive = 0; 
     int zeroes = 0; 
     int sum = 0; 
     int count = 0; 
     do{ 
     System.out.print("Enter a float or 'e' to exit"); 
    int num = input.nextInt(); 

      if(num < 0){ 
      sum += num; 
      count++; 
      negative++; 
      } 
      if (num > 0){ 
       sum += num; 
       count++; 
       positive++; 
      } 
      if (num == 0){ 
       sum += num; 
       count++; 
       zeroes++; 

       if (num = e){ 
        System.out.print(sum + count + zeroes + positive + negative); 
       } 

      } 
    } while(true); 
    } 

}

+1

'if (num <0); {' удалить ';'. И 'if (num = e) {' должно быть с '=='. Но однако ... Каков ваш вопрос? – pzaenger

+0

Проблема, с которой я сталкиваюсь, - это факт, что я не могу преобразовать int в строку, поэтому я не знаю, что положить вместо (num = e) –

ответ

1

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

 do{ 
     System.out.print("Enter a float or 'e' to exit"); 
     String entered = input.nextLine(); 
     if("e".equals(entered)){ 
      //print stuff 
      break; 
     }else{ 
      int num; 
      try { 
       num = Integer.parseInt(entered); 
      } catch (NumberFormatException e) { 
       System.out.println("Not a number nor e"); 
       continue; // re-do the loop 
      } 
      if(num < 0){//; ends the line, not to be used after if condition 
       sum += num; 
       count++; 
       negative++; 
      }else if (num > 0){ // num bcan be >0 only if its not <0, so use else 
       sum += num; 
       count++; 
       positive++; 
      }else{//similar to comment above 
       sum += num; 
       count++; 
       zeroes++; 
      } 

     } 
    } while(true); 
+1

Я думаю, что '// print stuff' должен быть' break', потому что это вызывает бесконечный цикл –

+0

@ cricket_007 спасибо, редактирование .. – Vivek

+1

Кроме того, 'if (num == 0) {sum + = num}' кажется ненужным. –

Смежные вопросы