【问题标题】:How to use 2 variables as user input to count - JAVA如何使用 2 个变量作为用户输入来计数 - JAVA
【发布时间】:2021-06-13 11:32:04
【问题描述】:

我对 JAVA 很陌生。我想知道如何创建一个小程序,用户可以在其中拥有开始和结束输入(2 个用户输入)。然后计算中间的数字。比如这样:

  • 用户输入 1 = 5;用户输入 2 = 10;结果应该是: 5,6,7,8,9,10。

经过一番研究,我得到了这段代码,但出了点问题,非常感谢您的帮助!

 import javax.swing.*;
 class Users{
    public static void main(String[] args) 
    {
        int a = userinput();
        int b = userinput();
        for( a = a <= b ; a = a + 1)
        {
            System.out.println(a);
        }
    }

public static int userinput()
{
    String tekst = JOptionPane.showInputDialog(null, "enter a number", "Users",3);
    int number = Integer.parseInt(tekst);
    return number;
}
}

【问题讨论】:

  • 因为你已经声明并基本初始化了变量a,你可以这样做:for(; a &lt;= b; a++) { System.out.println(a); }
  • 请详细说明究竟哪里错了。我猜是因为for 循环的语法不正确,所以会出现编译错误。可以固定为for (; a &lt;=b; a++) { System.out.println(a); }

标签: java for-loop count user-input


【解决方案1】:

你的 for 循环中有一点错误。

另外我会使用一个特殊的变量只用于计数/迭代,以免弄乱输入:

import javax.swing.JOptionPane;

class Users {
    public static void main(final String[] args) {
        final int a = userinput();
        final int b = userinput();
        for (int counter = a; counter <= b; counter++) {
            System.out.println(counter);
        }
    }

    public static int userinput() {
        final String tekst = JOptionPane.showInputDialog(null, "enter a number", "Users", 3);
        final int number = Integer.parseInt(tekst);
        return number;
    }
}

另外,如果你想增加一个值,你可以

a++;
++a;
a+=1;
a=a+1;

它们或多或少相同。

【讨论】:

  • 您好,感谢您的解释。我现在更明白了,真的很感激。
【解决方案2】:

(这不是基于 gui 的解决方案,它显示在控制台中)

首先我认为你应该学习java中的扫描仪。 你需要导入扫描仪

import java.util.Scanner;

然后你需要在你的 main 方法中创建一个扫描器对象。

Scanner keyboard = new Scanner(System.in);

您可以使用此代码进行输入:

System.out.println("Enter first number");
int firstInput=keyboard.nextInt();
System.out.println("Enter second number");
int secondInput=keyboard.nextInt();

输入后,你可以创建一个 for 循环来计算

for(int i=firstInput;i<=secondInput;i++){
    System.out.print(i);
} 

希望对您的问题有所帮助。

【讨论】:

    【解决方案3】:

    如果您是新手,请使用扫描仪而不是 joption。 将其导入到行首。

    import java.util.*; 
    

    在您的函数中编写以下代码以获取输入

     Scanner sc= new Scanner(System.in);    //System.in is a standard input stream  
     System.out.print("Enter number- ");  
     int number= sc.nextInt();  
    

    【讨论】:

    • 这使用控制台,而不是 Swing。这有点超出实际问题,因为那不是解决他问题的方法。并反驳您的“如果您是新手,请使用扫描仪而不是 joption。”:根据我的经验,最好让人们尽快远离控制台输入,并使用正确的 UI。您无法想象他们在控制台 I/O 中显示内容和使内容工作的时间长度,而他们可以使用 Swing/JavaFX 轻松完成。因此,由于他已经在使用 Swing,所以他最好坚持下去。恕我直言
    【解决方案4】:

    在顶部导入扫描器类。

    导入 java.util.*; //这里是创建新用户定义变量的代码。

    Scanner sc=new Scanner(System.in);

    // 创建一个 Scanner 对象
    System.out.println("输入第一个变量");

    int firstVariable=sc.nextInt();

    System.out.println(" 第一个变量是:" + firstVariable); // 输出用户输入

    int secondVariable=sc.nextInt();

    System.out.println(" 第二个变量是:" + secondVariable); // 输出用户输入

    【讨论】:

      猜你喜欢
      • 2020-08-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多