传智播客旗下技术交流社区北京校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 凉笙墨染 初级黑马   /  2019-1-8 16:54  /  68 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

就业班day01-day02

异常一
创建人
兰志伟
问题标题
编译错误
问题分类
编译if语句出现错误,找不到值,
一级话题
编译if语句的时候,定义了一个变量,出现一个错误,输出变量的时候值,只定义了变量的类型,
问题补充
附件
int temp;
int max=0;
double sum=0.0;
int a = list.get(0).getScore();
for (int i1 = 1; i1 < list.size(); i1++) {
    if (a < list.get(i1).getScore()) {
        a = list.get(i1).getScore();
        max = i1;
    }
}
for (int i=1;i<list.size();i++){

    if (a>list.get(i).getScore()){
        a=list.get(i).getScore();
        temp=i;
}
Sout(list.get(temp)这会报错找不到值,
       ^
问题答案
问题分析:
当你编译完成,会报错,因为if判断的时候如果你不给他一个初始值,他就是null,然而你listget不能索引null,所以报错
问题解决方法:
修改代码第一行给他赋一个初始值
Int temp=0;
异常二
创建人
兰志伟
问题标题
结果问题
问题分类
与实现结果不符
一级话题
运行之后偶然与问题结果对着,但是在已修改传入的就不对了
问题补充
附件

import java.util.ArrayList;
public class Demos07 {
    public static void main(String[] args) {
        ArrayList<String> list=new ArrayList<>();
list.add("音乐");list.add("旅游");list.add("看书");
list.add("跑步");list.add("音乐");list.add("音乐");list.add("旅游");
        list.add("游泳");
        for (int i = 0; i < list.size(); i++) {
            int a=0;
            for (int i1 = 0; i1 < list.size(); i1++) {
                if (list.get(i).equals(list.get(i1))){
                    a++;
                }
            }
            if (a!=1){
                list.remove(i);
            }
        }
        for (String str: list){
            System.out.print(str+" ");
        }
    }
}
问题答案
问题分析:
但运行之后这次与结果一样,虽然一样,但是我考虑后发现如果你一次重复好几次运行之后发现不能删除只剩一个,,绝对会剩两个,
问题解决方法:
修改代码第6行为:
在remove删除后加一个i--语句,因为会上位所以要在减回去开始判断
i--;


分享至 : QQ空间
收藏

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马