Java编程-基于流程图的编码

Java编程-基于流程图的编码,java,Java,我是编程新手,希望各位专家提供建议 根据给定的流程图,我走对了吗 如何改进代码以确保健壮性 流程图 ********** ********** ********** ********** 代码 // r is row, c is column int r = 1, c = 1; do { if (r <= 4) { if (c <= 10) {

我是编程新手,希望各位专家提供建议

根据给定的流程图,我走对了吗

如何改进代码以确保健壮性

流程图

**********
**********
**********
**********

代码

    // r is row, c is column
    int r = 1, c = 1;
    
    do { 
        if (r <= 4)
        {  
          if (c <= 10)
          {
              System.out.print("*");
              c += 1;
          }
          else {
              r += 1;
              c = 1;
              System.out.println();
          }
        }
        else {
            System.exit(1);
        }
    }while (c != 12);

根据提出的算法,其代码被视为遵循或符合准则。 您的代码看起来很棒,它只是尝试以与您尝试复制的更相似的方式命名变量

while (c != 12);
流程图没有这种情况


注意你的
if(rI)是如何缩短编码行的

    int row = 1, column = 1;
    
        while (row <= 4)
        {
          if (column <= 10) {
              System.out.print("*");
              column += 1;
          }
          else {
              row += 1;
              column = 1;
              //System.out.println();
          }
        }
int行=1,列=1;

虽然(行)我建议的一件事,因为从一开始就要了解它是非常重要的一点,就是合理地命名变量,让代码自己说出来,这样就可以理解了。没有人会理解什么是
r
c
;而
row
column
会起到很大作用更有意义的是,您不需要多余的注释。命名是程序员遇到的最重要的问题之一,因此,从一开始就养成良好的习惯是一个好主意。我想您添加
c!=12
只是为了确保它停止,即使您在c的逻辑中出现错误。通常c永远不会变成12。在这种情况下,我更喜欢
c>=12
因此,即使您的错误导致c得到更高的值,它也会停止。@FedericoklezCulloca嗨,谢谢您的回复。这是否意味着根据流程图,我的代码是正确的?因为我实际上添加了“System.out.println();”在else语句中。您的图表没有提到CR/LF,因此您不应该添加一个
println
,从而导致一行
*
s。该代码是正确的,并且按照流程图执行它的任务(可以说您不应该使用println(),因为流程图没有告诉您,但它提到行和列的事实让我相信它的目的是要拥有它)。另一种方法是使用循环来实现它
    int row = 1, column = 1;
    
        while (row <= 4)
        {
          if (column <= 10) {
              System.out.print("*");
              column += 1;
          }
          else {
              row += 1;
              column = 1;
              //System.out.println();
          }
        }