我试图让这段代码在第一行打印1-10,然后在第二行打印11-20,在第三行打印21-30等等。
但现在代码在第一行打印1-10,第二行打印10-20,第三行打印20-30等。
基本上我已经被困在这里并且一直在做试验和错误来尝试修复它但是没有工作。
import java.util.Scanner;
import java.io.*;
public class P4C {
public static void main ( String [] args )throws IOException {
PrintWriter writer = new PrintWriter ( new File ( "Write100Project" )); //creates a PrintWriter object to allow us to create and write to a file.
int integer = 1;
int margin = 1;
int counter = 1;
while ( margin <=100){
if ( margin == 10*counter ){
System.out.println ( integer + " ");
counter+=1;
integer = integer+1;
}
System.out.print ( integer + " " );
integer+=1;
margin++;
}
}
}
答案 0 :(得分:2)
当你遍历一个数组并希望以不同的方式处理某些元素时,基本上有两种方法:
选择哪种方法取决于重叠量。如果特殊元素的代码与其他元素的代码非常不同,请使用1.如果代码几乎相同,请使用2.
你似乎混合使用这些,这就是为什么每10个打印两次的原因。将您的问题翻译成两种方法:
%
,我希望你得到的是其他答案的含义):
if (margin % 10 == 0) {
System.out.println(margin + " ");
margin++;
} else {
System.out.print(margin + " ");
margin++;
}
System.out.print(margin + " ");
if(margin % 10 == 0) {
System.out.println();
}
margin++;
此外,请注意我不再需要integer
和counter
?
答案 1 :(得分:0)
对于这种类型的东西,模数%显示剩余部分。在这里你需要每隔10行换一个新行,所以@MadProgrammer的(margin % 10 == 0)
说的是除以10之后的余数是0
你可以用一个变量来完成所有这一切,而不是使用三个变量,这样可以使它更简单一点。逻辑是当你的数字小于100时,添加一个然后打印出来。如果它是行中的第10个数字,则打印一个新行。
import java.util.Scanner;
import java.io.*;
public class P4C {
public static void main ( String [] args )throws IOException {
PrintWriter writer = new PrintWriter ( new File ( "Write100Project" )); //creates a PrintWriter object to allow us to create and write to a file.
int integer = 0;
while ( integer <100){
if ( integer % 10 == 0 ){ //If integer is divisible by 10
System.out.println (); //Time to go onto a new line
}
integer++;
System.out.print ( integer + " " );
}
}
}
答案 2 :(得分:0)
&#39;%&#39;是模数。 模数基本上返回余数;例如:
5%4 = 1;
3%2 = 1;
8%3 = 2;
10%10 = 0;
i ++与说法相同;
i = i + 1;
或
i + = 1;
import java.util.Scanner;
import java.io.*;
public class IntegerCounting {
public static void main ( String [] args )throws IOException {
PrintWriter writer = new PrintWriter ( new File ( "Write100Project" ));
int i = 0;
while(i < 100){
if(i % 10 == 0 && i != 0){
System.out.println(i++ + "");
}
System.out.print(i++ + " ");
}
}
}
答案 3 :(得分:-1)
这可能会有所帮助......
int integer = 1;
while(integer<=100){
System.out.print(" "+integer++);
if(integer%10==0){
System.out.println(" "+integer++);
//System.out.println();
}
}