当前位置: 首页 > 知识库问答 >
问题:

当尝试输入[重复]时没有这样的元素异常

薛飞星
2023-03-14
Ange rektangelns bredd: 
10
Ange rektangelns höjd: 
10
En rektangelns med bredden 10 och höjden 10 ger arean 100
Ange rektangelns djup: 
Exception in thread "main" java.util.NoSuchElementException
at java.util.Scanner.throwFor(Scanner.java:862)
at java.util.Scanner.next(Scanner.java:1371)
at cj222qu.Box.<init>(Box.java:18)
at cj222qu.Steg4_lab02.main(Steg4_lab02.java:7)
import java.util.Scanner;

public class Box extends Rectangle {

private int depth;

public Box() {
    Scanner hej = new Scanner(System.in);

    String dep = null;
    boolean go3 = true;

    while (go3) {
        try {
            System.out.println("Ange rektangelns djup: ");
            dep = hej.next();
            Integer.parseInt(dep);
            go3 = false;
        } catch (NumberFormatException e) {
            System.out.println("Ett fel har inträffat! Ange värdet som ett tal");
            go3 = true;
        }
    }

    //new Box(getWidth(), getHeight(), Integer.parseInt(dep));

    hej.close();
}

public Box(int width, int height, int depth) {

    setDepth(depth);

    System.out.println(toString());
}

public String toString() {
    StringBuilder result = new StringBuilder();

    result.append("En låda med bredden " + getWidth() + ", höjden " + getHeight() + " och djupet " + ".");
    result.append("Lådans volym är " + computeVolume() + ".");
    result.append("Lådans mantelarea är " + computeArea() + ".");
    return result.toString();
}

public int computeVolume() {
    int volume = 0;

    volume = getWidth() * getHeight() * getDepth();

    return volume;
}

public int computeArea() {
    int mantelarea = 0;

    mantelarea = getDepth() * getWidth() * 2 + getDepth() * getHeight() * 2 + getWidth() * getHeight() * 2;

    return mantelarea;
}

public int getDepth()
{
    return depth;
}

public void setDepth(int d)
{
    depth = d;
}
}
import java.util.Scanner;

public class Rectangle {


private int height;
private int width;

public Rectangle(int width, int height)
{
    setHeight(height);
    setWidth(width);

    System.out.println(toString());
}



@Override
public String toString() {
    StringBuilder result = new StringBuilder();

    result.append("En rektangelns med bredden " + width + " och höjden " + height + " ger arean " + computeArea());
    return result.toString();
}



public Rectangle()
{
    Scanner keyboard = new Scanner(System.in);


    String w = null;
    String h = null;
    boolean go1 = true;
    boolean go2 = true;

    while (go1) {
        try {
            System.out.println("Ange rektangelns bredd: ");
            w = keyboard.next();
            Integer.parseInt(w);
            go1 = false;
        } catch (NumberFormatException e) {
            System.out.println("Ett fel har inträffat! Ange värdet som ett tal");
            go1 = true;
        }

    } 

    while (go2) {
        try {
            System.out.println("Ange rektangelns höjd: ");
            h = keyboard.next();
            Integer.parseInt(h);
            go2 = false;
        } catch (NumberFormatException e) {
                System.out.println("Ett fel har inträffat! Ange värdet som ett tal");
                go2 = true;
        }
    }

    new Rectangle(Integer.parseInt(w), Integer.parseInt(h));


    keyboard.close();
}

public int computeArea()
{
    int area = 0;

    area = getHeight() * getWidth();

    return area;
}

public int getHeight()
{
    return height;
}

public int getWidth()
{
    return width;
}

public void setHeight(int h)
{
    height = h;
}

public void setWidth(int w)
{
    width = w;
}
}
public class Steg4_lab02 {

public static void main(String[] args) {

    new Box();

}

}

共有1个答案

龙昊焱
2023-03-14

您不应该用System.in实例化多个扫描程序,并且关闭一个用System.in实例化的扫描程序(基本上是关闭STDIN流),然后用System.in创建一个新的扫描程序是一个很大的禁忌。

Rectangle应具有接受扫描程序或接受宽度和高度的构造函数。然后使用传入的扫描器来收集用户输入,或者在main()中收集用户输入,并用从用户那里收集的宽度和高度创建一个矩形

正如Fildor在注释中所述,BoxRectangle类不应负责收集用户输入。

 类似资料:
  • 问题内容: 所以这是我的代码: 由于某种原因,我收到了No Such Element Exception 我不确定为什么。基本上我的程序正在搜索两个文本文件-armour.txt和TreasureClassEx.txt。getTreasureClass从怪物那里获得一个宝藏类,并在txt中搜索,直到到达基础装甲项目(不以tc:开头的字符串。)然后,它在getArmor中搜索与所获得的基础装甲名称相

  • 我有一个基类,在其中我将webDriver定义为(使用Guice)。这定义了我的beforeclass以及下面的代码行 我有另一个类在beforesuite之后执行,它有一个method1,我在其中为给定函数编写了测试。看起来是这样的 我尝试在click语句上方添加以下行: log.info(webdriver.findelement(by.xpath(Element1)).getAttribut

  • 我是硒的新手,请帮帮我。整个代码: 如何为以粗体突出显示的元素选择xpath?我试过很多例子,但不幸的是没有一个像预期的那样有效。任何帮助都会很好。

  • “进入库存警报”对象 我不想单击“添加到购物车”。我只想把定位器信息存储在WebElement“AddToCart”中。因为对象具有非常相同的属性,所以我选择了这个唯一的属性“data-tl-id”,但没有起作用。 Web驱动程序 我得到错误“no such element:Unable to locate element:”。如何定位“添加到购物车”对象?

  • 问题内容: 因此,我尝试使用selenium单击下一步按钮,我尝试使用以下代码,但错误结束。 元素 我的密码 但是然后输出这些错误 任何人都对如何正确单击该按钮有任何想法? 问题答案: 此错误消息… …暗示 ChromeDriver 无法找到所需的元素。 找到所需的元素 按照您共享的HTML来单击该元素,您可以使用以下 定位策略之一 : : : 但是,您的主要问题是所使用的二进制文件之间的 版本兼