不是我想要嵌套嵌套循环中的输出

时间:2019-10-29 16:31:45

标签: java

我的情况是在Java中编写一个嵌套的while循环以产生以下输出。因此1 12 123必须降临。没有其他方法,我无法解决。 (Java中while循环的第一个介绍)

测试1

测试一些东西1 测试东西2

测试一些东西1 测试东西2 测试3的东西

测试一些东西1 测试东西2 测试的东西3 测试4项

依此类推。

这是我的代码

parentNode
DECLARE @PIN AS VARCHAR(100);
DECLARE @name AS VARCHAR(500);
DECLARE @start INT , @length INT;
DECLARE db_cursor CURSOR LOCAL FOR  SELECT FileName FROM [dbo].[pharmaCV];
SET @length = 11
OPEN db_cursor  
FETCH NEXT FROM db_cursor INTO @name  

WHILE @@FETCH_STATUS = 0  
BEGIN  
      SET @PIN = RTRIM(@name)
      SET @PIN = RIGHT(@PIN, CHARINDEX('_', REVERSE(@PIN) + '_') - 1)
      SET @PIN = SUBSTRING (@PIN  , 0, @length ) 
      UPDATE pharmaCV SET PIN = @PIN WHERE FileName LIKE '%'+@PIN +'%'

      FETCH NEXT FROM db_cursor INTO @name 
END 

CLOSE db_cursor  
DEALLOCATE db_cursor 

5 个答案:

答案 0 :(得分:2)

这是为您提供的一种方法:

public static void testingWhileLoops(int amount) {
    int i = 1;
    //This flag will control the vertical number of levels
    while(i <= amount) {
        int k = 1;
        //This flag will control the horizontal number of prints
        while(k <= i) {
            System.out.print("Testing something " + k + " ");
            k++;
        }
        i++;
        System.out.println();
    }
}

输出:

Testing something 1 
Testing something 1 Testing something 2 
Testing something 1 Testing something 2 Testing something 3 
Testing something 1 Testing something 2 Testing something 3 Testing something 4 
Testing something 1 Testing something 2 Testing something 3 Testing something 4 Testing something 5 

答案 1 :(得分:2)

我认为您需要更改循环的条件。 同样,更改为使用未使用的变量“金额”。 请参阅下面的代码。

public class StackOverflowTest {
    public static void testingWhileLoops(int amount) {
        int i = 1;
        while (i <= amount) {
            int k = 1;
            while (k <= i) {
                System.out.print("Testing something " + k + " ");
                k++;
            }
            System.out.println();
            i++;
        }
    }

    public static void main(String[] args) {
        testingWhileLoops(4);
    }
}

输出:

Testing something 1 
Testing something 1 Testing something 2 
Testing something 1 Testing something 2 Testing something 3 
Testing something 1 Testing something 2 Testing something 3 Testing something 4

答案 2 :(得分:1)

  1. 如果您想在文本后面输入数字,则可以在其后打印

    System.out.println("Testing something " + k + " ");
    
  2. 如果您不想转到新行,请使用print代替println

    System.out.print("Testing something " + k + " ");
    
  3. 如果您想增加该值,请从1开始并使用k++,然后在代码中将amount的值用于外部循环

    static void testingWhileLoops(int amount) {
        int i = 1;
        while (i <= amount) {
            int k = 1;
            while (k <= i) {
                System.out.print("Testing something " + k + " ");
                k++;
            }
            System.out.println();
            i++;
        }
    }
    

答案 3 :(得分:1)

尝试一下:

{{1}}

答案 4 :(得分:1)

假设您的预期输出如下:

//Testing something 1

//Testing something 1 Testing something 2

//Testing something 1 Testing something 2 Testing something 3

//Testing something 1 Testing something 2 Testing something 3 Testing something 4

testingWhileLoops(amount)中使用以下代码:

// Iterate through each row. We set the conditional statement to amount + 1 to
// account for the amount of rows requested.

for(int i = 0; i < amount + 1; i++) {

  for(int j = 0; j < i; j++) {

    System.out.print("Testing Something " + (j+1) + " ");

  }

  System.out.println();

}

amount等于4时,将显示所需的输出。