2014-12-18 56 views
-2

我想写一个代码,打印范围从2到最小的两个数字。例如: 例如: 让我说我输入两个数字 - 3和6 我需要它打印它像这样:3 4 5 6 现在我的问题是,如果我输入像6和3两个数字 比我有问题与第一次迭代,因为当我输入3和6它完成循环,并转到下一个......我不想这样,我想他结束程序,如果第一次迭代是真的。如果第一次迭代(for)为真,我该如何跳过第二次迭代? [java]

的代码:

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循环。

+0

'return'将停止执行当前函数。 – vikingmaster

+0

迭代是循环的一次。这不是真的或假的。你真的在问什么? – rakslice

回答

-1

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

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

这会打破循环一次,我打10

+0

我通常觉得应该注意/注释它破坏了代码流,尽管 – Bono

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即可。

+2

'smaller = Math.min(num1,num2);更大= Math.max(num1,num2);' – Tom

+0

绝对是一个更好的方式来做上面的代码片段;我只是想尽可能保持基本。 – Toby

+0

这样做并没有什么坏处。特别是通过显示“if/else”块的目的:)。 – Tom

1

你的for循环是两个执行。他们都在工作。你的结果是3,4,5,6(现在num1 = 7,这不是< = 6)和6,7所以if语句选择正确的循环应该可以解决你的问题。类似于

if (num1 < num2) { 
    //loop 1 
} 
else //loop 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); 
     } 
    } 
1

在您的第一个for循环之前放置此代码。

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

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

相关问题