为了账号安全,请及时绑定邮箱和手机立即绑定

在运行-运行配制-自变量 里输入数据后控制台无法输出结果,并且控制台显示程序一直在运行

在运行-运行配制-自变量 里输入数据后控制台无法输出结果,并且控制台显示程序一直在运行

慕尼黑4470242 2017-04-06 22:12:45
import java.util.Scanner;public class dddd { public static void main(String[] args) { // TODO 自动生成的方法存根 Scanner scan = new Scanner(System.in);    double highest = 0;  double lowest = 0;  double avg = 0;  int count = 0;  double total = 0;  double temp = 0;  int n = 0;  if ((temp = scan.nextDouble()) >= 0) {   highest = temp;   lowest = temp;   if (temp >= 60) {   count++;   }   n++;   total = total + temp;  }  do {   temp = scan.nextDouble();   if (temp < 0) {    break;   }   n++;   if (highest < temp) {    highest = temp;   }   if (lowest > temp) {    lowest = temp;   }   if (temp >= 60) {   count++;   }   total = total + temp;  } while (temp >= 0);  System.out.println("最高分: " + highest);  System.out.println("最低分: " + lowest);  System.out.println("平均分: " + total/n);  System.out.println("及格人数: " + count);   } }
查看完整描述

3 回答

已采纳
?
慕粉3291149

TA贡献71条经验 获得超52个赞

//img1.sycdn.imooc.com//58e6550d0001d95f09200577.jpg这是运行结果

查看完整回答
反对 回复 2017-04-06
  • 慕尼黑4470242
    慕尼黑4470242
    我是在 运行-运行配制-自变量 里输入数据,60 70 80 90 40 50 -10,然后点击运行的,然后控制台里面就出现了下面的结果。是因为我输入数据或者运行程序的方法不对吗?
  • 慕粉3291149
    慕粉3291149
    你配置的参数都保存到main方法的参数String[] args中去了 并不能像你这样
?
蔚然成麟er

TA贡献1条经验 获得超0个赞

关键在于你写的do-while()循环中的if判断以及while()中的判断条件

 if (temp < 0) {
   break;
  }
while (temp >= 0);

也就是说如果你输入负数,就不会执行do-while()中的其他代码,如果你输入了大于0的数,到了while()判断中,结果是正数,然后就开始了下一轮的循环,所以程序不会退出;

修改建议,在while()循环中设置成count<你想统计的学生个数-1,如果大于了这个人数,就会自动退出了

查看完整回答
反对 回复 2017-04-06
?
慕粉3291149

TA贡献71条经验 获得超52个赞

你的程序只有你输入负数才会结束

查看完整回答
反对 回复 2017-04-06
  • 3 回答
  • 0 关注
  • 1770 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信