Java - 用于循环输出问题

时间:2017-02-16 19:15:17

标签: java for-loop

我正在为需要输出的作业编写代码:

A1  B2  C3  D4  E5  F6  G7  H8  I9  J10  K11  L12 

这是我使用嵌套for循环编写的(赋值需要使用for循环):

public static void outputFive()
{
    //Output 5
    for(char alph = 'A'; alph <= 'L'; alph++)
    {
        for(int x = 1; x <= 12; x++)
        {
            System.out.print(alph + x + " ");
        }

    }
}

我收到的输出是所有数字甚至不是我想要的 跑步时得到的结果:

  

66 67 68 69 70 71 72 73 74 75 76 77 67 68 69 70 71 72 73 74 75 76 77   78 68 69 70 71 72 73 74 75 76 77 78 79 69 70 71 72 73 74 75 76 77 78   79 80 70 71 72 73 74 75 76 77 78 79 80 81 71 72 73 74 75 76 77 78 79   80 81 82 72 73 74 75 76 77 78 79 80 81 82 83 73 74 75 76 77 78 79 80   81 82 83 84 74 75 76 77 78 79 80 81 82 83 84 85 75 76 77 78 79 80 81   82 83 84 85 86 76 77 78 79 80 81 82 83 84 85 86 87 77 78 79 80 81 82   83 84 85 86 87 88

9 个答案:

答案 0 :(得分:1)

您可以使用这样的计数器:

public class respawn : MonoBehaviour
{
    public float threshold;

    void FixedUpdate()
    {
        if (transform.position.y < threshold)
            transform.position = new Vector3(403, 266, 337);

    }
}

这将告诉你:

public static void main(String[] args) {
    int i = 1;
    for (char alph = 'A'; alph <= 'L'; alph++) {
        System.out.print(alph + "" + i + " ");
        i++;
    }
}

因为如果你尝试将一个char添加到这样的int:

A1 B2 C3 D4 E5 F6 G7 H8 I9 J10 K11 L12 实际上这意味着System.out.println('A' + 1);而非65 + 1

答案 1 :(得分:1)

public static void main(String[] args) 
{
    int i=1;
    for(char alph = 'A'; alph <= 'L'; alph++,i++)
    {
       System.out.print(alph);
       System.out.print(i+" ");
    }
}

答案 2 :(得分:0)

试试这个;

for(int x = 1; x <= 12; x++)
{
    System.out.print(alph + "" + x + " ");
}

您的代码显示(int) alph + x

的总和

答案 3 :(得分:0)

alph + x计算将alph的ASCII字符代码添加到x。

E.g。 &#39; A&#39;的ASCII代码是65.这就是为什么第一次循环迭代得到66-77的原因。

答案 4 :(得分:0)

您可以使用String.valueOf(alph)

System.out.print(String.valueOf(alph) + x + " ");

答案 5 :(得分:0)

事实

  • 您正在使用2循环
for(char alph = 'A'; alph <= 'L'; alph++) //first loop A-L = 12x
    for(int x = 1; x <= 12; x++) //second loop 1-12 = 12x

表示您将打印件循环144次(12x12)

  • 您正在打印char

问题

  • 你要打印12次而不是144
  • char被视为数字类型

<强>解决方案

  • 删除第二个循环并使用起始值1
  • 创建int x
  • 使用String.valueOf(alph)
public static void outputFive()
{
    //Output 5
    int x = 1;
    for(char alph = 'A'; alph <= 'L'; alph++)
    {
            System.out.print(String.valueOf(alph) + x + " ");
        x++;
    }
}

答案 6 :(得分:0)

您也可以使用ASCII字符

public static void main(String[] args) {

int i = 1;
for (int alph = 65; alph <= 76; alph++)
  {
    System.out.print((char)alph + "" + i + " ");
    i++;
  }
}

答案 7 :(得分:0)

所有问题都存在,需求分析阶段。

System.out.print("A1  B2  C3  D4  E5  F6  G7  H8  I9  J10  K11  L12");`

当然满足所述的功能要求。但是,使用循环还有一个非功能性要求,因为数据中存在某种系列。数据中有几种模式可供查看。在我看来,假定某些字母表并对字符执行算术是不良做法。所以,我把数学中的字母表作为给定的序列:

// For convenience, use a String (of char) instead of an array of whatever
final String alphabet = "ABCDEFGHIJKL"; // assumes one char per character

然后问题就是输出序列的元素以及元素的从1开始的索引。

for (int i = 0; i < alphabet.length(); i++) {
    System.out.print(String.format("%c%d ", alphabet.charAt(i), (i+1)));
}

答案 8 :(得分:-2)

public static void main(String [] args){

int i = 1;

for(字符b ='A'; b <='Z'; b ++){

System.out.print(a + i); i ++;

}