类似于 JAVA for RPG 的 LOOP FOR

问题描述

我想在 RPG 中制作相同的循环 Java。但是我的语法有问题。

int nombre = 0;
int somme = 0;
int i = 0;

System.out.print("Entrer votre nombre svp : ");
nombre = enter.nextInt();

for(i = 0; i<=nombre; i++){
    somme += i;
}
        System.out.print("Le nombre de départ est " + nombre + " et la somme total est " + somme);

在 RPG 中,我被困在下面的这条线上。我没看到我在网上忘记了什么?

For i = 1 by Nombre; 

这是我的代码

 H
 D Nombre          S              3S 0
 D Somme           S              3S 0
 D i               S              2P 0
  *
  /Free
    dsply 'Entrer votre nombre svp : ' '' Nombre;

    For i = 1 by Nombre;
      Somme += i;

    EndFor;

    dsply 'La somme est de ' %Char(Somme);

    *inlr = *on;
  /End-Free
                     

解决方法

我找到了!

这是我的代码

 H
 D Nombre          S              3S 0
 D Somme           S              3S 0
 D i               S              2P 0
  *
  /Free

    dsply 'Entrer un nombre svp ' '' Nombre;

    For i = 0 to Nombre;
       Somme = Somme + i;

    EndFor;

    dsply (%Char(Somme));

    *inlr = *on;
  /End-Free         
,

我有点晚了,但最终我可以帮助其他人,然后是请求者。

对操作员自己的回答的一些想法:

  1. 对声明也使用自由格式
  2. 不要使用 /free 你不再需要它们
dcl-proc iterate;
  dcl-pi *n;
  end-pi;
//---
  dcl-c ARRAY_LENGTH 10;
  dcl-s array int(10) dim(ARRAY_LENGTH);
  dcl-s i int(10) inz(1);

  for i to ARRAY_LENGTH by 1;
    array(i) = i;
    dsply %char(array(i));
  endFor;
//---
end-proc;

对我的代码的一些想法:

  1. 预先初始化您的 i 或者您可以使用 for i=1 to ARRAY_LENGTH by 1;
  2. 使用 by 操作码代替 i += 1 来保持代码整洁

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...