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();
}
}