已有101人关注
求练习题最后一题的答案,以及这样写为什么会错的指导,谢谢
发表在Java图书答疑 2020-02-11 悬赏:66 学分 《Java从入门到精通(第4版)》第12章 异常处理 226页-226页
是否精华
版块置顶:

package greatestcommondivisor;


import java.util.Scanner;


public class Computer {

static int gcd(int m, int n) {

if (m <= 0 || n <= 0) {

throw new MyException("不能为负整数");

}

return m,n;


if (m < n) {

int k = m;

m = n;

n = k;

}

if (m % n != 0) {

int temp = m % n;

return gcd(n, temp);


}

return n;

}


public static void main(String[] args) {

try {

Scanner scanner = new Scanner(System.in);

int m = scanner.nextInt();

int n = scanner.nextInt();

int c = gcd(m, n);

System.out.println("最大公约数为:" + c);

scanner.close();

} catch (MyException e) {

System.out.println(e);

}

}

}

下面为:MyException类

package greatestcommondivisor;


public class MyException extends Exception{

public MyException(String ErrorMessage) {

super(ErrorMessage);

}

}


分享到:
精彩评论 7
根号申
学分:4736 LV12
TA的每日心情
2021-07-16 23:48:46
2020-02-11
沙发

没有让方法抛出异常

13018014521
学分:310 LV5
2020-02-11
板凳

根号申 发表于2020-02-11 14:51

没有让方法抛出异常

第一个if语句已经写了throw了呀。后面的gcd方法也在trycatch里呀。最后也输出了e呀。老师哪里出错了呢?

根号申
学分:4736 LV12
TA的每日心情
2021-07-16 23:48:46
2020-02-12
地板

我刚才已经回答了,让方法抛出异常,任何教材的正文里有thrwos关键字的介绍。

https://zyk.mingrisoft.com/Develop/view/id/901/type/6/cid/1.html

ywfpclt
学分:577 LV6
2020-02-12
4L

1、  return m,n;

这一行应该去掉,还有这一行里你的逗号是中文的,要换成英文,

2、catch (MyException e)

这一句语法错误,MyException改成Exception

再试试看

ywfpclt
学分:577 LV6
2020-02-12
5L
import java.util.Scanner;

public class Computer {
	static int gcd(int m, int n) {

		if (m < n) {
			int k = m;
			m = n;
			n = k;
		}
		if (m % n != 0) {
			int temp = m % n;
			return gcd(n, temp);

		}
		return n;
	}

	public static void main(String[] args) {
			Scanner scanner = new Scanner(System.in);
			try {
			int m = scanner.nextInt();
			int n = scanner.nextInt();
		if (m <= 0 || n <= 0) {
			throw new MyException("不能为负整数");
		}
			int c = gcd(m, n);
			System.out.println("最大公约数为:" + c);
		} catch (MyException e) {
			System.out.println(e);
		} catch (Exception f) {
			System.out.println("你输入的都是些什么!");
		}finally{
			scanner.close();
                }
	}
}

13018014521
学分:310 LV5
2020-02-13
6L

ywfpclt 发表于2020-02-12 23:17

import java.util.Scanner;

public class Computer {
	static int gcd(int m, int n) {

		if (m < n) {
			int k = m;
			m = n;
			n = k;
		}
		if (m % n != 0) {
			int temp = m % n;
			return gcd(n, temp);

		}
		return n;
	}

	public static void main(String[] args) {
			Scanner scanner = new Scanner(System.in);
			try {
			int m = scanner.nextInt();
			int n = scanner.nextInt();
		if (m <= 0 || n <= 0) {
			throw new MyException("不能为负整数");
		}
			int c = gcd(m, n);
			System.out.println("最大公约数为:" + c);
		} catch (MyException e) {
			System.out.println(e);
		} catch (Exception f) {
			System.out.println("你输入的都是些什么!");
		}finally{
			scanner.close();
                }
	}
}

谢谢!懂了

ywfpclt
学分:577 LV6
2020-02-13
7L

13018014521 发表于2020-02-13 12:09

谢谢!懂了

不客气,我也是闲着没事干,学着玩,有问题一起来

首页上一页 1 下一页尾页 7 条记录 1/1页
手机同步功能介绍
友情提示:以下图书配套资源能够实现手机同步功能
明日微信公众号
明日之星 明日之星编程特训营
客服热线(每日9:00-17:00)
400 675 1066
mingrisoft@mingrisoft.com
吉林省明日科技有限公司Copyright ©2007-2022,mingrisoft.com, All Rights Reserved长春市北湖科技开发区盛北大街3333号长春北湖科技园项目一期A10号楼四、五层
吉ICP备10002740号-2吉公网安备22010202000132经营性网站备案信息 营业执照