我向你们致以诚挚的问候。我需要有人帮助查看这个printChar(char ch1,char ch2,int num)方法。 它的目的是采用两个字符参数,一个起点ch1和一个终点ch2。从ch1到ch2以升序打印控制台上的字符,直到达到点(num),中断,然后在下一行继续打印。
我相信,这里面临的错误类型是合乎逻辑的。请帮忙。这是代码。public static void printChars(char ch1, char ch2, int num) {
while (ch1 < ch2) {
System.out.print(ch1++ + " ");
if ((ch1 % num) == 4) {
System.out.println("");
}
}
System.out.print(ch2);
}
public static void main(String[] args) {
printChars('A', 'H', 4);
}
}
这是显示的输出
run:
A B C
D E F G
HBUILD SUCCESSFUL (total time: 0 seconds)
intead of
A B C D
E F G H
答案 0 :(得分:1)
您应该看一下模运算符(%
)的工作原理。 n%n
不会返回n
而是0
您可能希望将if((ch1 % num)== 4)
更改为if((ch1 % num)== 0)
编辑:现在我明白了你真正想要的东西;)你应该实现一个与ch1并行运行的计数器并检查计数器(if((counter % num)==0)
)!使用该计数器,您可以在正确的位置打印换行符。
答案 1 :(得分:0)
你应该添加一些东西来计算行中的字符
public static void printChars(char ch1, char ch2, int num)
{
int counter = 0;
while(ch1 <= ch2)
{
System.out.print(ch1++ + " ");
counter++;
if( counter%num == 0 )
{
System.out.println("");
}
}
}
你也可以使用 ch1&lt; = ch2 而不是在结尾打印ch2
答案 2 :(得分:-1)
你的代码几乎是正确的,我做了一些小改动,看起来像你想要的那样:
public static void printChars(char ch1, char ch2, int num) {
int index = 1;
while (ch1 < ch2) {
System.out.print(ch1 + " ");
if ((index % num) == 0) {
System.out.println("");
}
index++;
ch1++;
}
System.out.print(ch2);
}
请告诉我这是否是你想要的......
<强> 实施例 强>
printChars(&#39; A&#39;,&#39; W&#39;,4);
A B C D
E F G H
I J K L
M N O P
Q R S T
U V W
您所拥有的探索是%必须与 0 进行比较,因为它会返回模块 ch1 和 num