关于JAVA编程基础

来源:百度知道 编辑:UC知道 时间:2024/06/27 16:25:27
用JAVA语言开发一个标题为“FlipFlop”的游戏应用程序。
它从1计数到100,遇到3的倍数就替换为单词“Flip”,
5的倍数就替换为单词“Flop”,
既为3的倍数又为5 的倍数则替换为单词“FlipFlop”。
相应代码请写一下。
/*
另外:这段代码有哪里出错了,怎么达不到问题的结果。
public class FlipFlop {
public static void main(String[] args){

for (int i=1;i<=100;i++){
if(i % 3==0){
System.out.print("Flip,");
continue;
}
if(i % 5==0){
System.out.print("Flop,");
continue;
}
if(i % 15==0){
System.out.print("FlipFlop,");
continue;
}

System.out.print( i + ",");

}
}
}
*/

最快的解决方法是把
if(i % 15==0){
System.out.print("FlipFlop,");
continue;
}
移到
if(i % 3==0){
System.out.print("Flip,");
continue;
}
之前。
因为每次遇到15的倍数的时候,你的程序先判断 i % 3 == 0,这个显然成立的,所以执行System.out.print("Flip,");以后直接continue,不执行后面的内容。因此
if(i % 15==0){
System.out.print("FlipFlop,");
continue;
}
根本不会被执行

这代码明显存在问题,
如果这个数就是15那么他在第一个IF 的时候就执行,i%3==0;跳出循环继续下一次,那么他就不会执行第三个IF了,所以你的判断条件应该改一下。

public class FlipFlop {
public static void main(String[] args){

for (int i=1;i<=100;i++){
if(i % 3==0&&i%5!=0){
System.out.print("Flip,");
continue;
}
if(i % 5==0&&i%3!=0){
System.out.print("Flop,");
continue;
}
if(i % 15==0){
System.out.print("FlipFlop,");
continue;
}

System.out.print( i + ",");

}
}

if(i %