Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2008/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/grails/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 关于do-while循环的混淆_Java - Fatal编程技术网

Java 关于do-while循环的混淆

Java 关于do-while循环的混淆,java,Java,这是我的代码 import java.util.*; public class dowhile { public static void main (String [] args) { Scanner kb = new Scanner (System.in); System.out.println("Enter number of # to be displayed: "); int tim = kb.nextInt(); String hash = "#"; do

这是我的代码

import java.util.*;
public class dowhile
{
public static void main (String [] args)
{
Scanner kb = new Scanner (System.in);
System.out.println("Enter number of # to be displayed: ");
int tim = kb.nextInt();

     String hash = "#";

     do
     {
        System.out.println(hash);
        hash = hash + 1;
        } while (hash.equals(5));
     }
}
在用户询问后,我对如何显示#的编号感到困惑

我知道hash.equals(5)没有意义。 如何修复此代码


任何人请给我建议。

在循环之前声明一个int变量。在do中按1递增数字,然后选中,然后在循环中输入数字将打印所需的输出

 int i=0;
 do
 {
    System.out.println(hash);
    i=i + 1;
 } while (i<tim);
inti=0;
做
{
System.out.println(散列);
i=i+1;

}while(i在循环之前声明一个int变量。在do中递增一个数字,然后选中,while循环中的数字将打印所需的输出

 int i=0;
 do
 {
    System.out.println(hash);
    i=i + 1;
 } while (i<tim);
inti=0;
做
{
System.out.println(散列);
i=i+1;

}而(i您可以使用
tim
作为计数器,如果它大于
0
,则在测试之前减小它

int tim = kb.nextInt();
do {
    System.out.print("#");
} while (--tim > 0);
System.out.println();

您可以使用
tim
作为计数器,如果它大于
0
,则在测试之前将其递减

int tim = kb.nextInt();
do {
    System.out.print("#");
} while (--tim > 0);
System.out.println();

您还可以使用ApacheCommons-lang3,它具有

参数: str-要重复的字符串,可能为空
repeat-重复str的次数,阴性处理为零

您还可以使用Apache commons-lang3,它具有

参数: str-要重复的字符串,可能为空
repeat-重复str的次数,负数被视为零

散列
是要打印的字符串,因此永远不要像这样更改其值:

hash = hash + 1; // this does not actually compile anyway.
要跟踪仍需要打印的次数,需要一个
int
变量。如您所见,
tim
是一个
int
变量,它已经存储了用户输入。让我们使用
tim
作为计数器

每次打印
#
时,将
tim
减少1。在循环条件下,写入
tim>0
。只要
tim
大于0,循环就会运行

Scanner kb = new Scanner(System.in);
System.out.println("Enter number of # to be displayed: ");
int tim = kb.nextInt();

String hash = "#";

do {
    System.out.println(hash);
    tim--; // this is equivalent to tim = tim - 1;, in case you did not know
} while (tim > 0);
但是,我不认为在这里使用
do-while
循环是合适的。如果用户输入0怎么办?一个
#
仍然会被打印出来。这不是很好吗

我建议在这里使用for循环:

Scanner kb = new Scanner(System.in);
System.out.println("Enter number of # to be displayed: ");
int tim = kb.nextInt();

String hash = "#";

for (int i = 0 ; i < tim ; i++) {
    System.out.println(hash);
}
Scanner kb=新的扫描仪(System.in);
System.out.println(“输入要显示的#的编号:”);
int tim=kb.nextInt();
字符串哈希=“#”;
for(int i=0;i
散列
是要打印的字符串,因此永远不要像这样更改其值:

hash = hash + 1; // this does not actually compile anyway.
要跟踪仍需要打印的次数,需要一个
int
变量。如您所见,
tim
是一个
int
变量,它已经存储了用户输入。让我们使用
tim
作为计数器

每次打印
#
时,将
tim
减少1。在循环条件下,写入
tim>0
。只要
tim
大于0,循环就会运行

Scanner kb = new Scanner(System.in);
System.out.println("Enter number of # to be displayed: ");
int tim = kb.nextInt();

String hash = "#";

do {
    System.out.println(hash);
    tim--; // this is equivalent to tim = tim - 1;, in case you did not know
} while (tim > 0);
但是,我不认为在这里使用
do-while
循环是合适的。如果用户输入0怎么办?一个
#
仍然会被打印出来。这不是很好吗

我建议在这里使用for循环:

Scanner kb = new Scanner(System.in);
System.out.println("Enter number of # to be displayed: ");
int tim = kb.nextInt();

String hash = "#";

for (int i = 0 ; i < tim ; i++) {
    System.out.println(hash);
}
Scanner kb=新的扫描仪(System.in);
System.out.println(“输入要显示的#的编号:”);
int tim=kb.nextInt();
字符串哈希=“#”;
for(int i=0;i
您有语法错误,为什么在do中放置?尝试以下操作:do{System.out.println(哈希);hash=hash+1;}while(hash.equals(tim));您有语法错误,为什么在do中放置?尝试以下操作:do{System.out.println(hash);hash=hash+1;}while(hash.equals(tim));虽然这可以回答问题,但一些评论和/或解释会很好。这也会帮助其他用户。虽然这可以回答问题,但一些评论和/或解释会很好。这也会帮助其他用户。