我正在进行Java Associate级认证,虽然我们明确告知我们不会在标签上进行测试,但我们已经展示了它们。看到这里虽然建议似乎永远不会使用标签?
我想在catch块/用户输入控制台中使用它们作为验证输入的方法。
do {//Keep calculator going as long as user wants
numInputCheck:
do {
try {//Force user to input a whole number
System.out.print("\nPlease enter the Mark you want to Calculate\n(Enter marks between " + GradeCalculator.getMIN_MARK() + " and " + GradeCalculator.getMAX_MARK() + " only): ");
mark = Integer.parseInt(scn.nextLine());
}catch(NumberFormatException nfe) {
System.out.println("\nInvalid entry - Please ensure entry is a number only.");
continue numInputCheck;
}
gradeCalc.isValidMark(mark);//Ensure input is within valid range
}while(!gradeCalc.getIsValidMark());
*etc*......
这是错误的编码吗?
编辑:上面的代码并没有按照我的想法做到/希望它做什么 - 它实际上并没有跳回到标签上。我最终将代码更改为
do {//Keep calculator going as long as user wants
do {//Force user to enter number within valid range
do {//Force user to enter a whole number
try {
System.out.print("\nPlease enter the Mark you want to Calculate\n(Enter marks between " + GradeCalculator.getMIN_MARK() + " and " + GradeCalculator.getMAX_MARK() + " only): ");
mark = Integer.parseInt(scn.nextLine());
isValidInput = true;
}catch(NumberFormatException nfe) {
System.out.println("\nInvalid entry - Please ensure entry is a number only.");
isValidInput = false;
}
}while(!isValidInput);
}while(!gradeCalc.isValidMark(mark));
我相当确定正常工作。
无论如何,我想我回答了自己的问题 - 不鼓励标签,因为像我这样的人试图使用它们。
答案 0 :(得分:0)
不,这不是实际的例子,因为如果没有标签的帮助,继续可以自己完成所有工作。 一个很好的例子是当你有2个嵌套循环并且想要从内循环中的条件中断外循环时
outerloop:while(condition1) {
while(condition2) {
if(condition3)
break outerloop;
}
{
答案 1 :(得分:0)
继续语句跳过上面的所有句子,你必须使用break句来停止循环。标签对于多个循环非常有用,例如:
set( [Rule(chain='OUTPUT', num='3', pkts='0', bytes='0', target='ACCEPT', prot='tcp', opt='--', inp='*', out='*', source='0.0.0.0/0', destination='10.10.7.84', extra='tcp spt:7390'),
Rule(chain='INPUT', num='1', pkts='0', bytes='0', target='ACCEPT', prot='tcp', opt='--', inp='*', out='*', source='148.100.0.0/16', destination='0.0.0.0/0', extra='tcp dpt:7390'),
Rule(chain='INPUT', num='3', pkts='0', bytes='0', target='ACCEPT', prot='tcp', opt='--', inp='*', out='*', source='10.10.7.84', destination='0.0.0.0/0', extra='tcp dpt:7390')])