2 qq 34018371 qq_34018371 于 2016.02.24 05:31 提问

Java语言程序设计第4章编程练习题1求问
import java.util.Scanner;

public class Practice {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        int data = 0;
        int positive = 0;
        int negative = 0;
        int sum = 0;
        int count = 0;
        System.out.print("Enter int value (0 for exit):");

        do {
            data = input.nextInt();
            if (data > 0)
                positive += 1;
            else 
                negative += 1;
            sum += data;
            count += 1;
        }while (input.hasNextInt() && data != 0);

        double average = sum / count;
        System.out.println("The totla is " + sum);
        System.out.println("The average is " + average);
    }
}

执行的时候不显示结果,0退出不了。怎样能够达到输出这样的结果啊?

  • Enter int value(0 for exit):
  • 1 2 -1 3 0 (enter)
  • The number of positives is 3
  • The number of positives is 1
  • The number of positives is 1The total is 5
  • The average is 1.25

5个回答

xiongzirui
xiongzirui   2016.02.24 09:32
已采纳

将while循环里面的条件交换一下位置就行了
while(data!=0 && input.hasNextInt())

xiongzirui
xiongzirui   2016.02.24 09:47

原因是input.hasNextInt()放在前面的话,当最后一个int值处理之后会等待输入,所以不会执行后面的输出部分的代码
另外最后记得加上input.close();养成好的习惯

qq_34018371
qq_34018371 回复xiongzirui: 看的书学的,压根不晓得有input.close();
2 年多之前 回复
caozhy
caozhy   Ds   Rxr 2016.02.24 06:57

把Scanner input = new Scanner(System.in);放在do循环里

a1055186977
a1055186977   2016.02.24 08:58
     Scanner input = new Scanner(System.in);
        int data = 0;
        int positive = 0;
        int negative = 0;
        int sum = 0;
        int count = 0;
        System.out.print("Enter int value (0 for exit):");

        do {
            data = input.nextInt();
            if (data > 0)
                positive += 1;
            else 
                negative += 1;
            sum += data;
            count += 1;
        }while (data != 0);
        double average = sum / count;
        System.out.println("The positive is " + positive);
        System.out.println("The negative is " + negative);
        System.out.println("The totla is " + sum);
        System.out.println("The average is " + average);
    }
qq_34018371
qq_34018371 回复a1055186977: 你这改法最简单哈。我把问题想复杂了![图片说明](http://forum.csdn.net/PointForum/ui/scripts/csdn/Plugin/001/face/28.gif)
2 年多之前 回复
xionglangs
xionglangs   Rxr 2016.02.24 11:13

加个标记public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int data = 0;
int positive = 0;
int negative = 0;
int sum = 0;
int count = 0;
boolean flag = true;
do {
System.out.println("Enter int value (0 for exit):");
data = sc.nextInt();
if (data > 0)
positive += 1;
else
negative += 1;
sum += data;
count += 1;
System.out.println("是否需要再次输入 Y/N");
if ("N".equals(sc.next())) {
flag = false;
}
} while (flag && data != 0);

    double average = sum / count;
    System.out.println("The totla is " + sum);
    System.out.println("The average is " + average);
}你的hasNextInt方法只是加一个扫描器,不太好判断,还是直接加个标记好一些。
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
java语言程序设计基础篇第十二章编程练习题
1package yongheng; import java.util.Scanner;public class Calculator { public static void main(String[] args) { Scanner cin = new Scanner(System.in); String str = cin.nextLine();
java语言程序设计基础篇第三章编程练习题
1 套公式 2 import java.util.Scanner; public class Main{ public static void main(String[] args){ int number1 = (int)(System.currentTimeMillis()%10); int number2 = (int)(System.currentTimeMillis()/7%
java语言程序设计基础篇第十三章编程练习题
1 2 3 4 /* 我在 java核心技术 里面看到了一个示例代码挺符合这个题目,不过我想吐槽那里面写的好麻烦,满满的全是方法的调用,感觉还不如用c写出来简洁呢 */ 5GeometricObject.java :package yongheng;public abstract class GeometricObject implements Comparable<GeometricObject>
Java语言程序设计 第13章
程序小白,希望和大家多交流,共同学习 设计一个Rational类,用于表示和处理有理数。 因为有理数共享了很多整数和浮点数的通用特征,而且Number是数值包装类的根类,所以讲Rational类定义为Number类的子类,因为有理数是可以比较的,所以Rational类也应该能够实现Comparable接口。 使用BigInteger实现数据类型。import java.math.BigInt
Java语言程序设计基础篇原书第十版第四章编程练习题答案
数学函数、字符和字符串这一章的编程练习题答案
java 语言程序设计 第十三章 13.5
程序小白,希望和大家多交流,共同学习 (只是将13.1的内容加以修改,具体的就是 implements Comparable; 然后我又在Rectangle类中重写了toString()方法,下面还给了一个关于Rectangle类的测试类。) public abstract class CompareGeometricObject implements Comparable<
java语言程序设计基础篇第四章编程练习题
1 import java.util.Scanner; public class Main{ public static void main(String[] args){ Scanner input = new Scanner(System.in); double r = input.nextDouble(); double s = 2*r*Math.sin(Math.PI/5)...
Java语言程序设计第十版编程练习题答案
本书特点 基础篇介绍基础内容,进阶篇介绍高级内容,便于教师按需选择理想的教材。 全面整合了Java 8的特性,对全书的内容进行了修订和更新,以反映Java程序设计的最新技术发展。 对面向对象程序设计进行了深入论述,包含GUI程序设计的基础和扩展。 提供的大量示例中都包括了对问题求解的详细步骤,很多示例都是随着Java技术的引入不断地进行增强,这种循序渐进的讲解方式更易于学生学习。 用JavaFX取代了Swing,极大地简化了GUI编程,比Swing更易于学习。 更多有趣示例和练习,激发学生兴趣。在配套网站上还为教师提供了100多道的编程练习题。
《Java语言程序设计》(基础篇)第14章编程练习题第1到12题答案
《Java语言程序设计》(基础篇)第14章编程练习题第1到12、15、18题答案,代码是我自己写的,若有不恰当的地方欢迎指正。
Java语言程序设计(基础篇)(原书第10版) 练习题答案 第4章
Java语言程序设计(基础篇)(原书第10版) 练习题答案 第4章