黑马程序员技术交流社区

标题: 为什么打印以后sum=29 [打印本页]

作者: 18732697514    时间: 2017-3-12 00:28
标题: 为什么打印以后sum=29
package com.ithema;

import java.util.Scanner;

/*1.键盘录入学生成绩(整数类型),如果录入的成绩为-1表示录入结束
2.打印输出录入的学生成绩的平均值*/
public class Test8 {
        public static void main(String[] args) {
                Scanner sc = new Scanner(System.in);

                        int sum=0;int count=0;
                        while(true){
                                System.out.println("请输入学生得学生成绩");
                                int  stuScore=sc.nextInt();
                                sum+=stuScore;
                                count++;
                                int avg=sum/count;
                                if(stuScore==-1){
                                        System.out.println(count);
                                        System.out.println(sum);
                                        System.out.println(avg);
                                        break;
                                }
                        }
        }
}
作者: 小黄哥    时间: 2017-3-12 01:27
你输入的成绩多少了?

作者: 18732697514    时间: 2017-3-12 11:28
小黄哥 发表于 2017-3-12 01:27
你输入的成绩多少了?

输入第一个学生成绩10,第二个学生成绩20,然后打印sum=29;
作者: 青春的探戈    时间: 2017-3-12 11:45
因为你最后一次成绩输的是-1,导致总成绩-1了

作者: 731567716    时间: 2017-3-12 11:50
判断-1写到sum+=  上面去, 不然会先加-1在判断
作者: yangxiaosa    时间: 2017-3-12 12:11
public class Test8 {
        public static void main(String[] args) {
                Scanner sc = new Scanner(System.in);

                        int sum=0;int count=0;
                        while(true){
                                System.out.println("请输入学生得学生成绩");
                                int  stuScore=sc.nextInt();
                                 if(stuScore==-1){
                                        System.out.println(count);
                                        System.out.println(sum);
                                        System.out.println(avg);
                                        break;
                                }
                                sum+=stuScore;
                                count++;
                                int avg=sum/count;
                        }
        }
}
作者: 小黄哥    时间: 2017-3-12 19:16
18732697514 发表于 2017-3-12 11:28
输入第一个学生成绩10,第二个学生成绩20,然后打印sum=29;

10+20-1。

作者: DCS    时间: 2017-3-12 23:03
你这是基础班的内容吧

作者: 623376390    时间: 2017-3-13 08:13
程序的执行是从上到下,应该先判定流程控制,再处理正文。菜鸟

作者: mrwalker    时间: 2017-3-13 08:54
都是新手,一起加油吧,打算自学好基础再直接参加就业班培训




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2