Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/394.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用try-and-catch获得正方形_Java - Fatal编程技术网

Java 使用try-and-catch获得正方形

Java 使用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;

所以我只是一个10年级的学生,我们在做这个程序,我们可以得到平方,但是它会用try-and-catch拒绝负数,我的教授说我是唯一一个接近输出的人,但是时间不够了

这是代码。 它显示答案,但不拒绝负数,也不显示“仅显示正数” 请帮忙:D

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条件。