Java 使用try-and-catch获得正方形
所以我只是一个10年级的学生,我们在做这个程序,我们可以得到平方,但是它会用try-and-catch拒绝负数,我的教授说我是唯一一个接近输出的人,但是时间不够了 这是代码。 它显示答案,但不拒绝负数,也不显示“仅显示正数” 请帮忙:DJava 使用try-and-catch获得正方形,java,Java,所以我只是一个10年级的学生,我们在做这个程序,我们可以得到平方,但是它会用try-and-catch拒绝负数,我的教授说我是唯一一个接近输出的人,但是时间不够了 这是代码。 它显示答案,但不拒绝负数,也不显示“仅显示正数” 请帮忙:D import java.util.*; public class MySquare{ public static void main(String args[]){ int num; int square;
import java.util.*;
public class MySquare{
public static void main(String args[]){
int num;
int square;
Scanner s = new Scanner(System.in);
System.out.print("Input a number.");
num = s.nextInt();
square = num * num;
System.out.println("Square: " + square);
try{
if( num <0){
throw new InputMismatchException("Only Positive Numbers!");
}
}catch (InputMismatchException e){
}
import java.util.*;
公共类MySquare{
公共静态void main(字符串参数[]){
int-num;
内景广场;
扫描仪s=新的扫描仪(System.in);
系统输出打印(“输入一个数字”);
num=s.nextInt();
平方=num*num;
System.out.println(“正方形:+Square”);
试一试{
如果(num您的catch块是空的-这是一个非常糟糕的主意。永远不要这样做
您至少应添加以下内容:
} catch (InputMismatchException e) {
e.printStackTrace();
}
一句忠告:学习并遵循严格的代码风格。大括号、名称等的放置非常重要。您已经接近了。尝试以下方法:
public static void main(String args[]){
int num;
Scanner s = new Scanner(System.in);
System.out.print("Input a number.");
try{ // try catch should surround s.nextInt, too
num = s.nextInt(); // read the input
if( num <0){
throw new InputMismatchException("Only Positive Numbers!");
}
// this part isnt reached in case of a negative number
int square = num * num;
System.out.println("Square: " + square);
}catch (InputMismatchException e){
System.out.println("invalid input! " + e.getMessage()); // catch the exception and print its message (e.g. "Only Positive Numbers!" when a negative number is entered)
}
}
publicstaticvoidmain(字符串参数[]){
int-num;
扫描仪s=新的扫描仪(System.in);
系统输出打印(“输入一个数字”);
try{//try-catch也应该围绕s.nextInt
num=s.nextInt();//读取输入
如果(num而不是输入不匹配异常使用IllegalArgumentException()
代码重构
import java.util.*;
public class MySquare{
public static void main(String args[]){
int num;
int square;
Scanner s = new Scanner(System.in);
System.out.print("Input a number.");
num = s.nextInt();
try {
if(num < 0){
throw new IllegalArgumentException("Only Positive Numbers!");
}
square = num * num;
System.out.println("Square: " + square);
} catch (IllegalArgumentException e) {
e.printStackTrace();
}
}
import java.util.*;
公共类MySquare{
公共静态void main(字符串参数[]){
int-num;
内景广场;
扫描仪s=新的扫描仪(System.in);
系统输出打印(“输入一个数字”);
num=s.nextInt();
试一试{
if(num<0){
抛出新的IllegalArgumentException(“仅限正数!”);
}
平方=num*num;
System.out.println(“正方形:+Square”);
}捕获(IllegalArgumentException e){
e、 printStackTrace();
}
}
}在计算平方前写入if条件。