Tag: while loop

Java:递归-While Loop Vs If Loop

代码设计1:完美运行 public static void main (String[] args) { recursion(2); } public static void recursion(int num) { if (num > 0) { recursion( num – 1 ); System.out.println(num); } } 代码设计2:无限循环。 ? public static void main (String[] args) { recursion(2); } public static void recursion(int num) { if (num == 0) return; while (num > 0) […]

JFrame在while循环期间冻结

我正在研究一个Java程序,它读取文本文件做了一些概率计算。 读取文件和所有相关的计算都是在while循环中完成的。 我使用JFrame创建了一个GUI,我在其中添加了一个进度条(使用JProgressBar)来显示进度,因为程序需要一段时间来处理文件。 代码看起来像 – while( there are more files to read ) { Read this file ; Do calculations ; Update progress bar ; } 现在,问题是一旦while循环开始并处理第一个文件,JFrame就会冻结 。 进度条没有更新,我无法按下JFrame中的任何按钮。 一旦while循环结束,帧就会更新,进度条会更新到最终值(因此,进度条从0开始然后暂停,最后变为100) 。 有人可以解释为什么JFrame会冻结吗? 是否可以在while循环迭代中更新它(JFrame中的进度条)? 谢谢 !

while循环中的Thread.sleep()

我注意到NetBeans警告我在我的Java代码中使用while循环中的Thread.sleep(),所以我已经对这个主题进行了一些研究。 主要问题似乎是性能问题,当计数器仍处于hibernate状态时,你的状态可能会变为真,因此在等待下一次迭代时会浪费挂钟时间。 这一切都很有道理。 我的应用程序需要联系远程系统并定期轮询操作状态,等待操作完成后再发送下一个请求。 目前,代码在逻辑上执行此操作: String state = get state via RPC call while (!state.equals(“complete”)) { Thread.sleep(10000); // Wait 10 seconds state = {update state via RPC call} } 鉴于环境正在检查远程操作(这是一个有点昂贵的过程,因为它运行了几秒钟),这是一个在while循环中有效使用Thread.sleep()吗? 有没有更好的方法来构建这个逻辑? 我已经看到了一些我可以使用Timer类的例子,但是我没有看到它的好处,因为它似乎仍然归结为上面同样简单的逻辑,但是引入了更多的复杂性。 请记住,在这种情况下,远程系统既不是我的直接控制,也不是用Java编写的,因此在这种情况下将此端更改为“合作”不是一种选择。 我更新应用程序状态值的唯一选择是创建和发送XML消息,接收响应,解析它,然后提取我需要的信息。 任何建议或意见都是最受欢迎的。

while循环中的try-catch方法?

我有这个代码,我想把try-catch放在while循环中。 逻辑是,“当存在输入错误时,程序将继续要求正确的输入”。 我该怎么做? 提前致谢。 public class Random1 { public static void main(String[] args) { int g; Scanner input = new Scanner(System.in); Random r = new Random(); int a = r.nextInt(10) + 1; try { System.out.print(“Enter your guess: “); g = input.nextInt(); if (g == a) { System.out.println(“**************”); System.out.println(“* YOU WON! *”); System.out.println(“**************”); System.out.println(“Thank you for […]

使用while循环和扫描仪validation输入

从指定范围(0,20)的用户获取有效整数并且为int的最佳方法是什么。 如果输入无效的整数打印输出错误。 我想的是: int choice = -1; while(!scanner.hasNextInt() || choice 20) { System.out.println(“Error”); scanner.next(); //clear the buffer } choice = scanner.nextInt(); 这是正确的还是有更好的方法?

循环时无法访问代码

当我编译这段代码时 public static void main(String [] args) { int x = 0; while(false) { System.out.println(hello); } } 它显示编译时错误无法访问的代码。 但是,当我修改此代码时 public static void main(String [] args) { int x = 0; boolean result = false; while(result) { x=4; } } 它工作正常。 有人能告诉我这种行为背后的原因。

for-each vs for vs while

我想知道在ArrayList或各种List上实现“for-each”循环的最佳方法是什么。 以下哪项实施最好,为什么? 或者有最好的方法吗? 感谢您的帮助。 List values = new ArrayList(); values.add(“one”); values.add(“two”); values.add(“three”); … //#0 for(String value : values) { … } //#1 for(int i = 0; i < values.size(); i++) { String value = values.get(i); … } //#2 for(Iterator it = values.iterator(); it.hasNext(); ) { String value = it.next(); … } //#3 Iterator it = […]

Java循环效率

我正在比较Java中嵌套for,while和do-while循环的效率,并且我遇到了一些我需要帮助理解的奇怪结果。 public class Loops { public static void main(String[] args) { int L = 100000; // number of iterations per loop // for loop double start = System.currentTimeMillis(); long s1 = 0; for (int i=0; i < L; i++) { for (int j = 0; j < L; j++) { s1 += 1; } } […]

如何为用户输入创建循环(直到用户输入有效输入)?

我的程序应该要求用户输入他们想要从帐户中提取的金额,并在提款后计算当前余额。 提款要求最低为100,最高为1000.如果用户输入错误输入,程序应重新提交,并要求用户再次输入金额。 此过程将一直重复,直到用户输入正确的金额。 选择正确的金额后,应计算并显示当前余额。 这是我尝试的方式,但我没有做出循环: package ex3; import java.util.Scanner; public class BankApp { public static void main(String[] args) { //displaying the welcome message System.out.println(“Welcome to our bank.\nYour initial balance is 1000 SEK\n”); //initializing all necessary variables double initialBalance = 1000; double userChoise = 0; double currentBalance; //asking user to enter expected amount System.out.println(“Enter your amount […]

尝试将新的Class实例添加到ArrayList时,while循环中出现NullPointerException

我越是谷歌,我就越困惑。 我从CSV中引入了一个未知长度的名称列表以及其他一些细节,然后我需要将其转换为Person对象并存储在名为people的列表中,这是类Club的实例变量,其列表为成员基本上。 这是一个非常简化的版本,我需要做更复杂的事情,我需要在循环浏览文件时为每一行创建对象,然后我需要添加到列表集合中。 当我运行我的代码时,我不断收到nullPointerException错误,我很难过如何避免它。 我猜我创建新对象时我的变量p需要在每个循环上进行更改,但我认为不可能动态更改变量吗? 无法想象我每次都可以使用有效的非null引用将对象提交到集合。 非常感谢任何帮助。 我试图在下面的代码中删除所有不必要的东西。 谢谢 //class arraylist instance variable of class “Club” private ArrayList people; //class constructor for Club public Club() {List people = new ArrayList();} public void readInClubMembers() { //some variables concerning the file input String currentLine; String name; String ageGroup; while (bufferedScanner.hasNextLine()) { //some lines bringing in the scanner […]