枚举是具有有限个整型变量符号常量的集合,这些整型符号常量称为枚举常量。
在这里我们讨论关于循环枚举。
给出一个例题:
百钱买百鸡问题:有一个人有100块钱,打算买一百只鸡。到市场一看,公鸡一只3元,母鸡一只5元,小鸡3只1元,试求用100元买一百只鸡,各为多少才合适?
根据问题我们得到方程组:
3x+5y+z/3=100
x+y+z=100
代码如下:
可以看到这里给出了许多种方案,如果我们只想要一种方案显示并且我们只想要第一种方案的话就要用break语句跳出循环。
如下所示:
我们可以看到,虽然我们使用了break语句想要跳出循环,但由于break只能跳出内层循环,而外层循环任然执行,其实这样和之前没什么区别,只不过过程步骤减少了一些。
现在使用接力break,跳出循环,如下所示:
我们在这里设置了一个标志exit,若exit=1,则证明还未找到合适方案,程序继续运行,若exit=0,则证明已经找到了第一种合适的方案,在接下来的外层循环中都加上对exit的判断,就可以接力跳出整个循环。
或者我们直接使用goto语句跳出,代码如下:
我们用goto给后面起名叫out,这下out就相当于传送门,可以在程序中反复横跳,这里的goto out在最内层循环中,在第一个方案被找到后,条件if判断正确,就传送出了整个循环。