Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.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 2带条件的用户输入,用于另一种方法_Java - Fatal编程技术网

Java 2带条件的用户输入,用于另一种方法

Java 2带条件的用户输入,用于另一种方法,java,Java,我正在做一个学校项目,要求我用不同的方法做以下工作: 启动主方法并演示程序 要求用户输入2个数字(条件a>b,都是正数&如果要求3次是错误的,或者让用户结束程序) 如果条件正常,则应打印从a号开始的前2个连续数字,以及从b号开始的最后2个连续数字 我正在处理几个问题,但最大的问题是我不能使用全局变量,所以我应该将数字从一个方法传递到另一个方法。 我该怎么做 我试过的代码是 import java.util.Scanner; //Importar scanner public class E

我正在做一个学校项目,要求我用不同的方法做以下工作:

  • 启动主方法并演示程序
  • 要求用户输入2个数字(条件a>b,都是正数&如果要求3次是错误的,或者让用户结束程序)
  • 如果条件正常,则应打印从a号开始的前2个连续数字,以及从b号开始的最后2个连续数字
我正在处理几个问题,但最大的问题是我不能使用全局变量,所以我应该将数字从一个方法传递到另一个方法。 我该怎么做

我试过的代码是

import java.util.Scanner; //Importar scanner

public class Eac4_001 {
    Scanner scanner = new Scanner(System.in);

    public static void main(String[] args) {
        Eac4_001 programa = new Eac4_001();
        programa.inicio();
    }

    public void inicio() {
        presentarPrograma();
        pedirNumeros();
        mostrarResultado();
    }

    public void presentarPrograma() {
        System.out.println("El programa pedirá dos números positivos.\n"
                + "El primero tiene que ser más pequeño que el segundo.\n"
                + "Luego enseñará los primeros y ultimos dos númberos del"
                + "rango conseguido.\n");
    }

    public void pedirNumeros() {
        int intentos = 3;
        boolean ok = false;
        int a = 0, b = -1;
        while (a > b && !ok) {
            System.out.print("Introduce un primer número: ");
            a = scanner.nextInt();
            System.out.print("Introduce un segundo número: ");
            b = scanner.nextInt();
            intentos = intentos - 1;
            if (intentos < 0) {
                ok = false;
            }
            System.out.println("Error, vuelve a introducir los números!");
        }
    }

    public void mostrarResultado() {

    }
}
import java.util.Scanner//进口扫描仪
公共类Eac4_001{
扫描仪=新的扫描仪(System.in);
公共静态void main(字符串[]args){
Eac4_001程序A=新的Eac4_001();
programa.inicio();
}
公共空间(inicio){
presentarPrograma();
Pedernumeros();
mostrarResultado();
}
公共无效呈现程序(){
System.out.println(“El programa pedirádos números Positives.\n”
+“El primero tiene que ser más pequeño que El segundo.\n”
+“卢埃戈·恩塞尼亚·洛斯·普里梅罗斯和乌尔蒂莫斯·多斯努姆贝罗斯·德尔”
+“rango conseguido。\n”);
}
公共空间{
int-intentos=3;
布尔ok=false;
int a=0,b=-1;
而(a>b&&!ok){
系统输出打印(“介绍联合国入门书努梅罗:”;
a=scanner.nextInt();
系统输出打印(“介绍联合国segundo número:”);
b=scanner.nextInt();
intentos=intentos-1;
如果(强度<0){
ok=假;
}
System.out.println(“错误,vuelve a introcir los números!”);
}
}
公共无效mostrarResultado(){
}
}

要将数字从一个方法发送到另一个方法,您可以将它们作为参数传递给另一个函数

示例

public void method1(int a, int b){
    //code 
}
public int method2(){
     int a = 20;
     return a; 
}
public int[] method3( )
{
      int[] x;

      x = new int[3];    // Create an array of 3 elements

      x[0] = 2;
      x[1] = 3;
      x[2] = 4;

      return( x );      
   }
上述方法接收两个整数值作为参数

将数字从一个方法传递到另一个方法的另一种方法是从该方法返回数字,然后从要传递数字的另一个方法调用该方法

如果只想将一个数字传递给另一个方法,只需返回它即可

示例

public void method1(int a, int b){
    //code 
}
public int method2(){
     int a = 20;
     return a; 
}
public int[] method3( )
{
      int[] x;

      x = new int[3];    // Create an array of 3 elements

      x[0] = 2;
      x[1] = 3;
      x[2] = 4;

      return( x );      
   }
或者,如果要传递多个数字,可以将它们存储在一个数组中,然后返回该数组

示例

public void method1(int a, int b){
    //code 
}
public int method2(){
     int a = 20;
     return a; 
}
public int[] method3( )
{
      int[] x;

      x = new int[3];    // Create an array of 3 elements

      x[0] = 2;
      x[1] = 3;
      x[2] = 4;

      return( x );      
   }
导入java.util.array;
导入java.util.Scanner;
公开课考试{
公开考试(){
}
公共静态void main(字符串[]args){
int[]myNumbers=新的int[2];
现在();
输入(我的号码);
入职前结果(MyNumber);
}
公共静态无效存在(){
System.out.println(“这是我的演示文稿”);
}
公共静态无效输入(int[]n){
扫描仪扫描=新扫描仪(System.in);
对于(int i=0;i<2;i++){
n[i]=scan.nextInt();
而(n[i]<0){
System.out.println(“您的数字必须高于0”);
n[i]=scan.nextInt();
}
如果(n[1]

所以这是可行的

在Java中,一个方法只能返回一个值。如果Java没有这个限制,那么您可以编写:

greeting();
int (a, b) = readNumbers();
output(a, b);
但是,由于第二行不是有效的Java,因此必须执行其他操作。以下几点非常接近:

greeting();
int[] numbers = readNumbers();
output(numbers[0], numbers[1]);
readNumbers
方法的末尾,您可以编写:

return new int[] { first, second };

请注意,该数组仅用于第二个方法的返回值。特别是,它不会进一步传递给第三种方法。这样做是不必要的,因为Java允许多个参数。

我对您的代码做了一些更改

import java.util.Scanner; //Importar scanner

public class Eac4_001 {
    Scanner scanner = new Scanner(System.in);

    public static void main(String[] args) {
        Eac4_001 programa = new Eac4_001();
        programa.inicio();
    }

    public void inicio() {
        presentarPrograma();
        pedirNumeros();
    }

    public void presentarPrograma() {
        System.out.println("El programa pedirá dos números positivos.\n"
                + "El primero tiene que ser más pequeño que el segundo.\n"
                + "Luego enseñará los primeros y ultimos dos númberos del"
                + "rango conseguido.\n");
    }

    public void pedirNumeros() {
        int retry = 0;
        int input1, input2;
        boolean ok = false;

        do {
            System.out.print("Introduce un primer número: ");
            input1 = scanner.nextInt();
            System.out.print("Introduce un segundo número: ");
            input2 = scanner.nextInt();

            if (input1 > 0 && input2 > 0) {
                ok = true;
                //call your method from here.
                mostrarResultado(input1, input2);
            } else {
                System.out.print("Invalid Input. Try again.");
                if (retry < 3) {
                    retry++;
                } else {
                    break;
                }
            }

        } while (!ok);
    }

    public void mostrarResultado(int input1, int input2) {
        //Do whatever you want to do, here with these variables
    }
}
import java.util.Scanner//进口扫描仪
公共类Eac4_001{
扫描仪=新的扫描仪(System.in);
公共静态void main(字符串[]args){
Eac4_001程序A=新的Eac4_001();
programa.inicio();
}
公共空间(inicio){
presentarPrograma();
Pedernumeros();
}
公共无效呈现程序(){
System.out.println(“El programa pedirádos números Positives.\n”
+“El primero tiene que ser más pequeño que El segundo.\n”
+“卢埃戈·恩塞尼亚·洛斯·普里梅罗斯和乌尔蒂莫斯·多斯努姆贝罗斯·德尔”
+“rango conseguido。\n”);
}
公共空间{
int重试=0;
输入1,输入2;
布尔ok=false;
做{
系统输出打印(“介绍联合国入门书努梅罗:”;
input1=scanner.nextInt();
系统输出打印(“介绍联合国segundo número:”);
input2=scanner.nextInt();
如果(输入1>0&&input2>0){
ok=正确;
//从这里调用您的方法。
mostrarResultado(输入1、输入2);
}否则{
System.out.print(“输入无效,请重试”);
如果(重试<3次){
重试++;
}否则{
打破
}
}
}而(!ok);
}
公共void mostrarResultado(int-input1,int-input2){
//做任何你想做的事,这里有这些变量
}
}

阅读Java教科书。或者Java教程。我做了一些研究,但正如我所看到的,我无法将2 int从一个方法传递到另一个方法。您的代码正是您不应该用Java编写代码的方式。我想你应该读一下面向对象编程。@ALxALx:ofcou