如果第一次迭代(for)为真,我怎么能跳过第二次迭代? 【JAVA]

时间:2014-12-18 21:12:56

标签: java for-loop

我正在尝试编写一个代码,用于打印2个数字之间的范围,从最小到最大。 例如: 比方说我输入两个数字--3和6 我需要它打印出来:3 4 5 6 现在我的问题是如果我输入两个数字,如6和3 比我第一次迭代有问题,因为当我输入3和6时它完成循环并转到下一个...我不想要那个,我希望他在第一次迭代为真时结束程序。

代码:

import java.util.Scanner;
public class ForClass
{
    public static void main(String[]args)
    {
        Scanner scan = new Scanner(System.in);
        System.out.println("Please enter two numbers");
        int num1, num2;
        num1 = scan.nextInt();
        num2 = scan.nextInt();

        for(;num1<=num2;num1++){
                System.out.print(num1);  

            }

        for(;num2<=num1;num2++){  
                    System.out.print(num2);                
        }
    }
}

试验: 3和6 转到第一个for循环,运行它然后转到第二个for 然后打印 3 4 5 6 6 7 这是错的我希望它打印 3 4 5 6 并结束该计划。

***我应该指出我必须使用for循环。

5 个答案:

答案 0 :(得分:3)

如果它是真的,你可以使用布尔值并只执行第二个for循环...

boolean executed = false;

for ( /* code here */ ) {
    executed = true;
    /* code here */
}

if (!executed) {
    for ( /* code here */ ) {
        /* code here */
    }    
}

但是,在您的情况下,更好的方法是确定哪个数字更小:

int smaller, bigger;
if (num1 > num2) {
    smaller = num2;
    bigger = num1;
} else { /* may want to do something different if they are equal */
    bigger = num2;
    smaller = num1;
}

然后你只需要一个循环,你只需要使用biggersmaller

答案 1 :(得分:1)

您的for循环同时执行。他们都在工作。您的结果是3,4,5,6(现在num1 = 7,不是&lt; = 6)和6,7所以选择正确循环的if语句应该可以解决您的问题。像

这样的东西
if (num1 < num2) { 
  //loop 1 
} 
else //loop 2

答案 2 :(得分:1)

试试这样; 有一个for循环;

public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        System.out.println("Please enter two numbers");
        int num1, num2;
        num1 = scan.nextInt();
        num2 = scan.nextInt();
        int start, end;
        if (num1 > num2) {
            start = num2;
            end = num1;
        } else {
            start = num1;
            end = num2;
        }
        for (int i = start; i <= end; i++) {
            System.out.print(i);
        }
    }

答案 3 :(得分:1)

在你的第一个for循环之前输入这段代码。

if(num2 < num1){
    int temp = num1;
    num1 = num2;
    num2 = temp;
}

然后擦除你的第二个for循环。这种只用一个临时变量交换两个变量的方法对学习很有用。

答案 4 :(得分:-1)

任何时候你想要打破循环,break;都会帮助你!

for(int i = 0; i < 20; i++) {
    if(i == 10) break;
}

一旦我击中10,那就会打破循环。