Java 我应该如何编写此代码? 再次: 而(!s.hasnetint())s.next(); 金额=s.nextInt(); 如果(金额卡数){ System.out.println(“您需要输入一个介于0和“+numberOfCards”之间的数字); 再次转到; }
它在C#中运行良好,但在Java中没有goto。我可以想出很多复杂的方法来重做这件事,但我感兴趣的是写这段代码最干净、最推荐的方法是什么。将它包装在一个循环中:Java 我应该如何编写此代码? 再次: 而(!s.hasnetint())s.next(); 金额=s.nextInt(); 如果(金额卡数){ System.out.println(“您需要输入一个介于0和“+numberOfCards”之间的数字); 再次转到; },java,Java,它在C#中运行良好,但在Java中没有goto。我可以想出很多复杂的方法来重做这件事,但我感兴趣的是写这段代码最干净、最推荐的方法是什么。将它包装在一个循环中: again: while (!s.hasNextInt()) s.next(); amount = s.nextInt(); if(amount < 0 || amount > numberOfCards) { System.out.println("You n
again:
while (!s.hasNextInt()) s.next();
amount = s.nextInt();
if(amount < 0 || amount > numberOfCards) {
System.out.println("You need to enter a number between 0 and "+numberOfCards);
goto again;
}
while(金额<0 | |金额>numberOfCards){
而(!s.hasnetint())s.next();
金额=s.nextInt();
如果(金额<0 | |金额>卡数){
System.out.println(“您需要输入一个介于0和“+numberOfCards”之间的数字);
}
}
愚蠢的方式:
while (amount < 0 || amount > numberOfCards) {
while (!s.hasNextInt()) s.next();
amount = s.nextInt();
if(amount < 0 || amount > numberOfCards) {
System.out.println("You need to enter a number between 0 and "+numberOfCards);
}
}
while(true){
而(!s.hasnetint())s.next();
金额=s.nextInt();
如果(金额<0 | |金额>卡数){
System.out.println(“您需要输入一个介于0和“+numberOfCards”之间的数字);
}否则{
打破
}
}
什么是聪明的方法?正确重写代码。愚蠢的方式==模拟goto(实际上使“强制goto”又名while(true)
并中断以退出这个永久循环。你能像这样在答案中包含智能方式吗?智能方式:再次-重写代码,这样就不需要goto。查看@Eran的答案(尽管它包含错误-第一次检查时未初始化的金额)例如。do{}while(…)
可能会对你有所帮助。这一切都取决于你。尽管在生产代码中使用这种“愚蠢”的方法是可以的。break
是法律指令。我称它为愚蠢是因为有更好的方法来完成你的任务。最短的方法-你已经有了-见上文:)一些(不太聪明)人们认为Goto to Noad对于一些未知的原因是我的,所以它不存在于一些语言中,比如java。
while (true) {
while (!s.hasNextInt()) s.next();
amount = s.nextInt();
if(amount < 0 || amount > numberOfCards) {
System.out.println("You need to enter a number between 0 and "+numberOfCards);
} else {
break;
}
}