Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/358.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 我应该如何编写此代码? 再次: 而(!s.hasnetint())s.next(); 金额=s.nextInt(); 如果(金额卡数){ System.out.println(“您需要输入一个介于0和“+numberOfCards”之间的数字); 再次转到; }_Java - Fatal编程技术网

Java 我应该如何编写此代码? 再次: 而(!s.hasnetint())s.next(); 金额=s.nextInt(); 如果(金额卡数){ System.out.println(“您需要输入一个介于0和“+numberOfCards”之间的数字); 再次转到; }

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

它在C#中运行良好,但在Java中没有goto。我可以想出很多复杂的方法来重做这件事,但我感兴趣的是写这段代码最干净、最推荐的方法是什么。

将它包装在一个循环中:

    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;
    }
}