2015-10-21 3 views
-1

Я создаю программу для разработки min, max и avg для ввода пользователей. Когда пользователь вводит 0 или отрицательное число, программа выходит из цикла.Ошибка в том случае, если оператор условный

В настоящее время я работаю над созданием входного процессора. Но у меня есть некоторые ошибки. Раньше я не использовал условные обозначения, поэтому я должен где-то ошибаться.

Также будет оценено любое предположение о том, как я мог бы сделать это лучше.

Ошибка:

questionAvg.java:17: error: illegal start of expression 
      if(input_into.nextInt() !=0) || input_into.nextInt < 0){ 
             ^
questionAvg.java:17: error: ';' expected 
      if(input_into.nextInt() !=0) || input_into.nextInt < 0){ 
                   ^
questionAvg.java:19: error: 'else' without 'if' 
       } else{ 

Код:

import java.util.*; 
public class questionAvg 
{ 
public static void main(String[]args) 
{ 

Scanner input_into = new Scanner(System.in); 
ArrayList<Integer> collector = new ArrayList<Integer>(); 

System.out.println("Enter 0 or a negative number to end input"); 
System.out.println("Enter a positive integer to populate the arraylist"); 


    while (input_into.hasNextint()){ 
       System.out.println("Type another int or exit"); 

      if(input_into.nextInt() !=0) || input_into.nextInt < 0){ 
       collector.add(input_into.nextInt()); 
       } else{ 
         System.out.println("You entered 0 or a negative number. Now calculating...."); 
       } 
      } 
     } 
    } 
+1

Три синтаксиса ошибки: иных ошибок 'input_into.hasNextint()) {' -> 'input_into.hasNextInt()) {', 'если (input_into.nextInt()! = 0) || input_into.nextInt < 0){' -> 'if (input_into.nextInt()! = 0 || input_into.nextInt() <0) {' (здесь два) –

+2

ошибка на самом деле говорит вам, что не так. просто продолжайте смотреть на нее, пока не получите ее. – GottZ

ответ

1

Снимите дополнительный ) в if заявлении перед || и вы пропустили () при вызове input_into.nextInt() < 0 .Это должно быть.

if(input_into.nextInt() !=0 || input_into.nextInt() < 0){ 

А также вы читаете число дважды в if(input_into.nextInt() !=0 || input_into.nextInt < 0) и снова в следующей строке collector.add(input_into.nextInt()); .Instead вы можете сделать

int inp=input_into.nextInt(); 
    if(inp!=0 || inp < 0){ 
       collector.add(inp); 
+2

OP также сделал ошибку во втором условии оператора if: 'input_into.nextInt' должен быть' input_into.nextInt() ' – jonk

+1

@jonk благодарит обновленный мой ответ плюс один для ваших острых глаз – silentprogrammer

+1

np, я предполагаю возможно, это послужило поводом для понижения в моем ответе ... – jonk

1

Вы сделали ошибку здесь:

if(input_into.nextInt() !=0) || input_into.nextInt < 0) 

Он должен be

if(input_into.nextInt() !=0 || input_into.nextInt < 0) 
2

У вас есть кронштейн в неправильном месте, и вы лечение nextInt как публичный переменная не метод:

if(input_into.nextInt() !=0) || input_into.nextInt < 0) 

должны быть:

if(input_into.nextInt() != 0 || input_into.nextInt() < 0) 

, как в противном случае вы завершая оператор if после первого условия, следовательно, все ошибки.

0

Пожалуйста, попробуйте следующий код (я тестировал):

import java.util.ArrayList; 
import java.util.Scanner; 

public class questionAvg { 
    public static void main(String[] args) { 

     Scanner input_into = new Scanner(System.in); 
     ArrayList<Integer> collector = new ArrayList<Integer>(); 

     System.out.println("Enter 0 or a negative number to end input"); 
     System.out.println("Enter a positive integer to populate the arraylist"); 

     while (input_into.hasNextInt()) { 
      System.out.println("Type another int or exit"); 

      if ((input_into.nextInt() != 0) || (input_into.nextInt() < 0)) { 
       collector.add(input_into.nextInt()); 
      } else { 
       System.out.println("You entered 0 or a negative number. Now calculating...."); 
      } 
     } 
    } 
} 
Смежные вопросы