这是我作业的一部分。我需要的只是一些建议。我需要编写一些嵌套的循环结构,以打印以下内容:
"122333444455555"
"+**+++****+++++"
"--***++++-----******+++++++"
这是我打印第一组符号的代码
public static void main (String[] args)
{
int i,j;
for(i=1;i<6;++i)
{
for(j=1;j<i+1;++j)
{
System.out.print(i);
}
}
}
这完全没问题。我只是弄清楚第二和第三组符号。为我缺乏经验而道歉,我对Java很新。
答案 0 :(得分:4)
一个解决方案是:
final String[] arr = {"*", "+"};
在你的内部循环中:
System.out.print(arr[i % 2]);
%
(Modulo)运算符负责*
和+
符号之间的切换:
对于甚至 i
,它将是*
,否则它将是+
。
输出:"+**+++****+++++"
。
(关于第二个输出,我不会向你展示解决方案,但是一旦你理解了它,它就非常类似于这个。)
答案 1 :(得分:2)
public static void main(String[] args) throws IOException {
int i, j;
for (i = 1; i < 6; ++i) {
for (j = 1; j < i + 1; ++j) {
System.out.print(i);
}
}
System.out.println();
for (i = 1; i < 6; i++) {
if (i % 2 == 1) {
for (j = 1; j < i + 1; ++j){
System.out.print("+");
}
} else {
for (j = 1; j < i + 1; ++j){
System.out.print("*");
}
}
}
System.out.println();
for (i = 2; i < 8; i++) {
if (i % 3 == 1) {
for (j = 1; j <= i; ++j){
System.out.print("+");
}
} else if (i % 3 == 2) {
for (j = 1; j <= i; ++j){
System.out.print("-");
}
} else {
for (j = 1; j <= i; ++j){
System.out.print("*");
}
}
}
}
周期#1: 您必须打印1到5的数字,每个数字N必须打印N次。
for (i = 1; i < 6; ++i) { // this would set `i` to numbers from 1-5
for (j = 1; j < i + 1; ++j) { // for each cycle (next number) it prints
//it out N times where N is the cycle number. 1 is the first cycle,
//2 is the second and so on.
周期#2: 同样的问题,但不是打印出循环次数,而是根据周期数是奇数还是偶数打印出+或*。
要检查数字是否均匀,您可以使用:
int number = 1;
if(number % 2 == 0){ // is true if the number is even
这会检查number
除以2的余数。
周期#3: 与#2相同但你从第二个周期开始,而不是从第一个周期开始,你在除以3后检查余数。
答案 2 :(得分:0)
如果我理解,第三组由“ - * +”序列组成,所以:
String sequence = "-*+";
String s = "+**+++****+++++";
int seqI = 0;
for(i=0; i != s.size(); ++i) {
for(j=0; j < i+2; ++j) {
System.out.print(sequence[seqI]);
}
if(seqI < sequence.size()) {
++seqI;
} else {
seqI = 0;
}
}
答案 3 :(得分:0)
您可以定义如下函数:
public static char Output(int i, int mode)
{
if (mode == 1)
{
return (char) i;
}
else if (mode == 2)
{
if (i % 2 == 0)
{
return '+';
}
else
{
return '*';
}
}
else if (mode == 3)
{
if (i % 3 == 0)
{
return '-';
}
else if (i % 3 == 1)
{
return '*';
}
else
{
return '+';
}
}
}
使用它就像:
for (int mode = 1 ; mode < 4 ; mode++)
{
for (int i = 1 ; i < 6 ; i++)
{
for (int j = 0 ; j < i + (int)(mode / 3) ; j++)
{
System.out.println(Output(i, mode));
}
}
}
注意:是的!实际上我的代码很难阅读,但如果你试着阅读它,你会学到的东西比其他答案更多!