2015-10-21 124 views
-1

我正在構建一個程序來計算用戶輸入的最小值,最大值和平均值。 當用戶輸入0或負數時,程序退出循環。if語句中的錯誤有條件

我目前正在構建輸入處理器。但我有一些錯誤。之前我還沒有使用過這些條件,所以我必須在那裏犯一個錯誤。

還有任何建議如何我可以做得更好,將不勝感激。

錯誤:

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

三語法errros錯誤:'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());。相反,你可以做

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,我在猜測這可能是我的答案downvote的原因... – 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...."); 
      } 
     } 
    } 
}