大神解答下:Exception in thread "main" java.lang.Error: Unresolved compilation problem:

importjava.util.Scanner;publicclass逻辑{/***@paramargs*/publicstaticvoidmain(String[]ar... import java.util.Scanner;
public class 逻辑 {

/**
* @param args
*/
public static void main(String[] args) {
Scanner input=new Scanner(System.in);
System.out.print("请输出张浩的java成绩:");
int javaScore=input.nextInt();

System.out.print("请输入张浩的音乐成绩:");
int musicScore=input.nextInt();

if((javaScore>98 && musicScore>80)||(javaScore==100 && musicScore>70)){
System.out.println("老师奖励张浩");
展开
 我来答
雪飞潇潇
2018-02-27 · TA获得超过6275个赞
知道大有可为答主
回答量:1968
采纳率:91%
帮助的人:875万
展开全部

java.lang.Error: Unresolved compilation problem: java代码编译错误

原因: 代码没有编写完整. java里 花括号都是成对出现的,

解决办法: 最后加上3个反花括号  } } } 

启发: 写代码要按照习惯进行良好的缩进, 这样就能清晰的看出来花括号是否有写全

修改完后的代码

import java.util.Scanner;

public class 逻辑 {

/**
 * @param args
 */
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.print("请输出张浩的java成绩:");
int javaScore = input.nextInt();

System.out.print("请输入张浩的音乐成绩:");
int musicScore = input.nextInt();

if ((javaScore > 98 && musicScore > 80) || (javaScore == 100 && musicScore > 70)) {
System.out.println("老师奖励张浩");
}
}
}

其他建议: 

类名建议不要使用中文.  按照java命令的规范,最好是英文,并且每个单词的首字母大写.并且要有意义的名词.

比如 class Student{ }//学生类

class QueryFrame{ } // 查询窗口类

class MyUtils{ }//我的工具类

所以类名建议从 逻辑 --修改成--> ScoreDemo 之类的

思考

int javaScore = input.nextInt(); 存在2个问题

问题一:

//这句代码.如果输入的是-56 或者 输入的是180 ,虽然不会出错,但是不符合常规.

//因为分数都是 [0~100]之间

问题二:

//这代码,就限制输入只能输入整数,如果是其他类型,比如输入abc 98.26

//那么就会抛出异常 java.util.InputMismatchException 并且导致程序退出

//如果有异常,程序就崩溃,那么这样的程序是不稳健的

完善版本

import java.util.Scanner;

public class ScoreDemo {

public static void main(String[] args) {
Scanner input = new Scanner(System.in);
String name = "张浩";
int javaScore = getScore(name,"java", input);
int musicScore = getScore(name,"音乐", input);
System.out.println("录入成功!! "+name+" java成绩:"+javaScore+"\t音乐成绩:"+musicScore);
if ((javaScore > 98 && musicScore > 80) || (javaScore == 100 && musicScore > 70)) {
System.out.println("老师奖励"+name);
}
}

//该方法 用于从控制台读取一个整数
// name   姓名
// course 课程
// input  扫描器,用于读取输入
private static int getScore(String name,String course, Scanner input) {
int score;
while (true) {
System.out.print("请输出"+name+"的" + course + "成绩:");
try {
score = Integer.parseInt(input.nextLine());// 读取一行字符串转换为整数
if (score < 0 || score > 100) { // 这个判断,主要用于判断该整数是否在合理的范围
System.out.println("Error: 请输入的范围在[0~100]");
continue;// 如果不在合理的范围,就再循环依次,等待输入
}
return score; // 如果进行到这里 ,那么说明代码没有异常,也在合理范围,也就可以跳出循环了
} catch (Exception e) {// 捕获到异常,说明,输入的是字母等.需要再次循环,提示用户输入
// e.printStackTrace();
System.out.println("Error: 请输入一个整数.");
continue;
}
}
}
}
dudu想去玩
2018-02-18
知道答主
回答量:19
采纳率:0%
帮助的人:1.7万
展开全部
nextInt就已经限制了输入的类型是int整型,报错说你输错了
更多追问追答
追问
你好,那要怎么修改呢
追答
你输入就只能输入整型数字了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式