日期:2014-05-20  浏览次数:20724 次

控制不好循环,望高手指教。
题目是这样的:从1到100开始计数,遇到3的倍数就替换为单词“Flip”、遇到5的倍数就替换为单词“Flop”、即为3的倍数又

为5的倍数的就替换为单词“FlipFlop”,其余情况下就输出当前的数字。我所写的程序如下:

请各位前辈帮我看看程序需要在哪里纠正的,谢谢了

public class Lijie01 {
public static void main(String[] args){
int i = 1;
String cut = "Flip";
String cuc = "Flop";
String cuu = "FlipFlop";
for(;i<=100;i++){
if(i%3==0 && i%5==0){
System.out.println(cuu);

}
if(i%3 == 0){
System.out.println(cut);
 

if(i%5 ==0){
System.out.println(cuc);

}
System.out.println(i);

}

}

}



------解决方案--------------------
要加else的,否则直接穿透了
------解决方案--------------------
Java code

public class Lijie01 {
public static void main(String[] args){
int i = 1;
String cut = "Flip";
String cuc = "Flop";
String cuu = "FlipFlop";
for(;i<=100;i++){
if(i%3==0 && i%5==0){
System.out.println(cuu);

}
if(i%3 == 0&&!(i%5==0)){//这里
System.out.println(cut);
  
}  
if(i%5 ==0&&!(i%3==0)){//这里
System.out.println(cuc);

}
System.out.println(i);

}

}

}

------解决方案--------------------
2楼说的对,if 前面要加else,否则三个就是对立的if了,这样就有可能同时被执行

public class Lijie01 {
public static void main(String[] args){
int i = 1;
String cut = "Flip";
String cuc = "Flop";
String cuu = "FlipFlop";
for(;i<=100;i++){
if(i%3==0 && i%5==0){
System.out.println(cuu);

}
else if(i%3 == 0){
System.out.println(cut);
  
}
else if(i%5 ==0){
System.out.println(cuc);

}
System.out.println(i);

}

}

}