java-Java语言程序设计第4章编程练习题1求问

问题描述

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

解决方案

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

解决方案二:

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

解决方案三:

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

解决方案四:

     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);
    }

解决方案五:

加个标记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方法只是加一个扫描器,不太好判断,还是直接加个标记好一些。
时间: 2024-09-12 18:52:25

java-Java语言程序设计第4章编程练习题1求问的相关文章

100分求java语言程序设计进阶篇pdf

问题描述 求java语言程序设计进阶篇pdf 解决方案 解决方案二:同求啊!!!解决方案三:这个网上是没有的,我也在网上找过,我建议你去网上找java核心技术<上下卷>pdf这本书写的也是不错的,,这个网上有电子书的,,这两本书配合着java编程思想,相当的不错的解决方案四:真正的进阶是需要项目练习的,纸上得来终觉浅解决方案五:引用2楼xinzailiulei的回复: 这个网上是没有的,我也在网上找过,我建议你去网上找java核心技术<上下卷>pdf这本书写的也是不错的,,这个网上

Java 程序性能优化《第一章》Java性能调优概述 1.2性能调优的层次

Java 程序性能优化<第一章>1.2性能调优的层次 为了提升系统性能,开发人员开始从系统各个角度和层次对系统进行优化.除了最常见的代码优化外,在软件架构上.JVM虚拟机层.数据库以及操作系统层面都可以通过各种手段进行优化,从而在整体上提升系统的性能. 1.2.1 设计调优 设计调优处于所有调优手段的上层,它往往需要在软件开发之前进行.在软件开发之处,软件架构师就应该评估系统可能存在的各种潜在问题,并给出合理的设计方案.由于软件设计和架构对整体质量有决定性的影响,所以,设计调优对系统性能的影响

java-Java语言程序设计第八版基础篇的编程练习

问题描述 Java语言程序设计第八版基础篇的编程练习 为什么按照下面的运行实例的数进行输入所得的结果却不同import java.util.Scanner; public class FutureInvestmentValue { public static void main(String[] args) { Scanner input = new Scanner(System.in); System.out.print(""Enter investment amount:"

选择合适的java脚本语言

脚本 选择合适的java脚本语言--如果你正考虑在java应用中集成脚本解释器,最难得是决定使用那种 摘要:脚本语言已经向java开发者证明了它的价值.它让客户实现应用功能的扩展和界面的个性化,从而程序的价值得以提升.另外,它们可以显著的简化程序开发者的设计任务,通过实现动态定义.装载和评估.对于开发人员,集成一种或多种脚本语言的任务是简单的,从越来越长的可选列表中选出一个确实困难的.本文描述了一些伴随java应用中脚本语言支持的问题,并从不同角度比较了Groovy, JudoScript, P

退火算法-java最优组合算法问题,编程实现字母最优组合生成最优解

问题描述 java最优组合算法问题,编程实现字母最优组合生成最优解 要求:输入A~K中的任意几个字母(无重复),对这些字母进行组合.输出最优组合的最小组数n和组合方案,使用java语言. 约束条件:A可以和B一组: A可以和E.F.G一组: C.D.H要单独分组: I可以和E.F.G一组: J可以和E.F.G一组: K可以和E.F.G一组: 如果可以,希望用退火算法的思想来解决本问题.毕设赶着要用这个算法,希望尽快提供解决方案,拜谢! 解决方案 两两组合,还是可以多个组合? 解决方案二: 必须是

Java跨语言调用实现方案

Java 跨语言实现方案 背景: 在大型分布式 java 应用中,为了方便开发者,通常底层的 rpc 框架都会做一些调用的封装,让应用层开发人员在开发服务的时候只用编写简单的 pojo 对象就可以了,如流行的 spring remoting , jboss remoting 等等,都有这样的效果. 随着业务的需要,可能上层应用希望采用非 java 技术,如 php , ruby on rails ,而由于 java gc 和内存模型的限制,可能有的底层服务又需要采用更高性能和更加灵活的技术,如果

java-求教各位Java程序语言大神,用Java语言编写一个能在Eclipse开发工具运行的音乐播放器

问题描述 求教各位Java程序语言大神,用Java语言编写一个能在Eclipse开发工具运行的音乐播放器 这个音乐播放器要有基本的功能,例如(这几个播放方式最好有图标)开始播放.停止播放.两三个播放模式:音乐播放的进度条:播放列表:有歌手的背景图. 最后一个要求:编程能在Eclipse开发工具了运行. 本人新手,对Java语言很多不懂,所以如果可以的话,可以在某些关键的代码后面注释,谢谢! 也可以发到我邮箱:sxl2860@163.com,如果是发到我邮箱的,请大神们说一声! 如果做得好的话,及

了解Java 8功能如何让并发性编程变得更容易

在期待已久的 Java 8 版本中,并发性方面已实现了许多改进,其中包括在java.util.concurrent 层级中增加新的类和强大的新并行流 功能.设计流的目的是与lambda 表达式 共同使用,Java 8 的这项增强也使得日常编程的其他很多方面变得更加简便.(参见介绍 Java 8 语言的 指南文章,了解对于 lambda 表达式的介绍及相关 interface改动.) 本文首先介绍了新的 CompletableFuture 类如何更好地协调异步操作.接下来,我将介绍如何使用并行流(

Java:过去、未来的互联网编程之王

Java对你而言是什么?一门你大学里学过的语言?一个IT行业的通用语言?你相信Java已经为下一次互联网爆炸做好了准备么?Java 一方面为嵌入式计算做了增强,而另一方面为实时应用做了精简,本文将介绍为什么 Java 是IoT(物联网)开发的最佳语言. 为嵌入式计算增强.为实时系统精简--为什么 Java 是最适合 IoT 的语言 自1969年至今,我们可以看到网络设备爆炸式的增长:从最初四个大学的计算机群构建成的ARPANET,直到现今互联网上有两亿活跃用户.而不久之后的将来这一数字将会呈指数