2015-10-21 102 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...."); 
      } 
     } 
    } 
}