数组中for循环里面if else 的用法及容易犯的错误
•发布于   •作者 fly唐朝的天空(唐秋果)  •482 次浏览  •来自 资讯

在这周做练习题时发现了自己容易犯的错误总结下来避免下次再犯。例题有一个数列:8,4,2,1,23,344,12循环输出数列的值,猜数游戏:从键盘中任意输入一个数据,判断数列中是否包含此数,首先看错误代码


这种情况怎么解决?我们肯定是要把else里面的内容放到循环外,而且要在不满足条件的情况下能够输出这句话,我是这么解决的


当然这题可以用这个加return这种方法,但是如果我们要计算我们输入进去的数在数列中一共有多少个时,这种方法就不行了。我们可以加个标记为可以解决。



所以我们避免在数组for循环里使用else,我们可以用return或者搞个标记位来把这个else里的内容提出来在用标记位来判断。

最后还插入一段实心菱形代码

 其实这个菱形就是两个三角形在一起。上面是个正三角形,先打空白出来。依次减少空白。星星相反的慢慢增多而下面的是倒三角形。也是先打空白。依次增多空白。星星也相反的慢慢减少 
package zuoye;
public class LingXing{
	public static void main(String[] args) { 
		for(int i=1;i<=9;i+=2){        //外层for循环控制星星个数最多一行有9个,每次加2个星
			for(int kong=9;kong>i-1;kong--){//这个for循环控制每行空格的个数,也就是说打印第一颗星前要打印8个空白
				System.out.print(" ");
			}
			for(int xing=1;xing<=i;xing++){//*号第二行起每次循环增加一个*跳出当前循环总共加俩个*,因为i每次加2的
				System.out.print("* ");
			}
			System.out.println();          //每打印完一行换行。
		}
//*****************************************上半部分为一个三角形,下半部分同理为个倒三角形****************
		for(int j=1;j<=7;j+=2){//下半部分从最多一行有7个开始,每次加俩个星
			for(int kong1=1;kong1<j+3;kong1++){//控制空格间隙的,先打印少的空格因为星星慢慢递减则空格慢慢递增
				System.out.print(" ");
			}
			for(int xing1=7;xing1>=j;xing1--){//最多一行7个星每次减一个一循环因为j+2则每次减2.
				System.out.print("* ");
			}
			System.out.println();
		}}
}



15 回复
Choices()

这一题你分析的很透彻使用,我也是可以通过这个方法来实现对for循环的理解,以及对一些图形的控制,形成自己想要的图形,所以特地来给给个赞,加油吧!boy

狂暴的猛牛

return是结束程序用的,return后面的代码是报错的,因为该代码永远也执行不到,java会报错,同break,continue。

        循环中结束循环用break,跳出当前循环(左起,跳出第一个循环的花括号体);continue结束本次循环,回到所在循环开头,执行下一次循环。

return用在方法里面是返回的意思,加上一个变量返回该变量。


王成龙

很多易犯的错误,整理的很好

姜岩

@狂暴的猛牛  这位兄台的解释有点不合理诶,请见下图,不是所有的return都会报错的


王成龙

@姜岩 同意楼上看法

fly唐朝的天空(唐秋果)

@狂暴的猛牛 写在这题的这个循环里面可以的。没有报错。。

Choices()

而return是表示从被调函数返回到主调函数继续执行,返回时可附带一个返回值,由return后面的参数指定。return后函数就结束了,后面的语句不再执行     而我们可以看到后面的hello并没有打印出来



王成龙
王成龙

想结束循环还有一个更霸道的:system.exit(0)  结束整个程序。任何位置使用都会结束程序


狂暴的猛牛

@fly唐朝的天空(唐秋果) @王成龙 @姜岩 我想你们应该把写的东西看完,最后一句明确指出return用在方法里面是返回值类型的意思。你们把方法里面return后面的返回值去掉,看看还能不能用。


jack

结束循环,应该用break。用return会结束当前方法。  或者return 参数;会返回该参数,后面的代码也不会执行了。但就你的这题目而言,“这个不存在”永远不会执行。不合理把。

根据情况合理使用把

jack

不对, 我看错了, 这样写,貌似也对。但看起来不习惯啊~~~哈哈

jack

你万一后面程序还有想运行的, 你这种方法就不合理。 在main里面,最好不要用return

jack

你这种方法就像,一条马路上,你在路中间停车了,也要让后面的车都停就像return。应该是你靠边停了,后面车应该该怎么走就怎么走。用break;。输出语句,放在循环外面,循环里面,用个值记录结果,

fly唐朝的天空(唐秋果)

@jack 谢谢指正!我现在知道了。

回到顶部

©2017 Powered by 三十三行伪代码
皖ICP备17005175号-3