Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/321.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 如何跳过某个数字并继续?_Java_For Loop - Fatal编程技术网

Java 如何跳过某个数字并继续?

Java 如何跳过某个数字并继续?,java,for-loop,Java,For Loop,我正在编写一个程序,用户给出1到20之间的任意数字,并在加法和乘法之间进行选择,该程序将计算结果为n(输入)的基本加法或乘法 比如说, 如果输入为4和加法,程序给出如下答案: 四等于四 4是3加1 4是2加2 如果输入为9和乘法,程序给出如下答案: 9是9*1 9是3*3 它不能重复相同的答案,比如 6是3*2 6是2*3 我的问题是乘法部分。 我仍然不知道如何跳过2(如上所述)。它将ends保持在9是9*1,并且没有给出更多,因为我编码了,如果余数不是0,则结束程序 但我不知道怎么做。下面是我

我正在编写一个程序,用户给出1到20之间的任意数字,并在加法和乘法之间进行选择,该程序将计算结果为n(输入)的基本加法或乘法

比如说,

如果输入为4和加法,程序给出如下答案:

四等于四

4是3加1

4是2加2

如果输入为9和乘法,程序给出如下答案:

9是9*1

9是3*3

它不能重复相同的答案,比如

6是3*2

6是2*3

我的问题是乘法部分。 我仍然不知道如何跳过2(如上所述)。它将ends保持在9是9*1,并且没有给出更多,因为我编码了,如果余数不是0,则结束程序

但我不知道怎么做。下面是我到目前为止所做的。。 x是乘法的第一个字母,j是乘法的第二个数字

class Main {
 public static void main (String[] args) {
 Scanner sin = new Scanner (System.in);
 System.out.println ("Please enter an integer between 1 and 20: ");
 int nNatalie = sin.nextInt();
 sin.nextLine();
 int nHalf = nNatalie / 2;
 int j = 1;

 if (1 > nNatalie || nNatalie > 20) {
  System.out.println ("Invalid Number");
 }

 else {
  System.out.println ("Addition or Multiplication?");
  String word = sin.nextLine();

  if (word.equals("Addition")) {
    System.out.println(nNatalie + " is " + nNatalie);
    for (int i = nNatalie - 1; i >= nHalf; i--){
      if (j <= i) {
        System.out.println(nNatalie + " is " + i + " and " + j);
        j++;
      }
    }
  }

  else if (word.equals("Multiplication")) {
    for (int x = nNatalie; x >= j;){
      if (nNatalie%j != 0) {
        continue;
      }
      System.out.println(nNatalie + " is " + x + "*" + j + ".");
      j++;
      x = nNatalie / j;
    }
  }
}
主类{
公共静态void main(字符串[]args){
扫描仪sin=新的扫描仪(System.in);
System.out.println(“请输入一个介于1和20之间的整数:”);
int nNatalie=sin.nextInt();
sin.nextLine();
int nHalf=nNatalie/2;
int j=1;
如果(1>nNatalie | | nNatalie>20){
System.out.println(“无效编号”);
}
否则{
System.out.println(“加法还是乘法?”);
String word=sin.nextLine();
if(字等于(“加法”)){
System.out.println(nNatalie+“是”+nNatalie);
对于(int i=nNatalie-1;i>=nHalf;i--){
如果(j=j;){
如果(nNatalie%j!=0){
继续;
}
System.out.println(nNatalie+是“+x+”*“+j+”);
j++;
x=nNatalie/j;
}
}
}
} }试试这个

import java.util.Scanner;

public class Main {

    public static void main(String[] args) {
        Scanner sin = new Scanner(System.in);
        System.out.println("Please enter an integer between 1 and 20: ");
        int nNatalie = sin.nextInt();
        sin.nextLine();
        int nHalf = nNatalie / 2;
        int j = 1;

        if (1 > nNatalie || nNatalie > 20) {
            System.out.println("Invalid Number");
        }

        else {
            System.out.println("Addition or Multiplication?");
            String word = sin.nextLine();

            if (word.equals("Addition")) {
                System.out.println(nNatalie + " is " + nNatalie);
                for (int i = nNatalie - 1; i >= nHalf; i--) {
                    if (j <= i) {
                        System.out.println(nNatalie + " is " + i + " and " + j);
                        j++;
                    }
                }
            }

            else if (word.equals("Multiplication")) {
                
                for(int i = 1; i < nNatalie; i++) {
                    
                    if(nNatalie%i!=0) {}
                    else {
                        System.out.println(nNatalie + " is " + i + " * " + nNatalie/i);
                    }
                    
                }
            
            }
        }
    }
}
import java.util.Scanner;
公共班机{
公共静态void main(字符串[]args){
扫描仪sin=新的扫描仪(System.in);
System.out.println(“请输入一个介于1和20之间的整数:”);
int nNatalie=sin.nextInt();
sin.nextLine();
int nHalf=nNatalie/2;
int j=1;
如果(1>nNatalie | | nNatalie>20){
System.out.println(“无效编号”);
}
否则{
System.out.println(“加法还是乘法?”);
String word=sin.nextLine();
if(字等于(“加法”)){
System.out.println(nNatalie+“是”+nNatalie);
对于(int i=nNatalie-1;i>=nHalf;i--){

如果(j)请提供一个例子来说明您的问题。不清楚问题是什么。您是如何初始化
j
?如果您单步执行9个案例,我们假设j从1开始,第一个循环,它将打印:“9是9*1”然后j变为2,x变为4。这样它就只会循环,因为如果
nNatalie%j!=0
其中9%2等于1,那么在迭代过程中什么都不会改变。你的
x
变量几乎没有用。你可以做
nNatalie%j==0
看看它是否可以被j整除,然后
int x=nNatalie/x
。for循环应该是
for(intj=1;js对代码的一些解释很好,以供将来参考。