Java 如何跳过某个数字并继续?
我正在编写一个程序,用户给出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是乘法的第二个数字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,则结束程序 但我不知道怎么做。下面是我
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对代码的一些解释很好,以供将来参考。