如何在java循环中设置一个switch语句
发布时间:2020-12-15 00:58:31 所属栏目:Java 来源:网络整理
导读:我想在while循环中执行一个切换,在每个switch语句的break处,while循环停止,并要求输入像F,R,C,Q.下面的语句工作,但是语句不会中断.请帮忙 public static void main(String[] args) throws IOException { // start both with 1 point int goodTotal = 50; int
我想在while循环中执行一个切换,在每个switch语句的break处,while循环停止,并要求输入像F,R,C,Q.下面的语句工作,但是语句不会中断.请帮忙
public static void main(String[] args) throws IOException { // start both with 1 point int goodTotal = 50; int monTotal = 50; // input switch statement while (goodTotal > 0 && monTotal > 0) { System.out.print("Type a letter: "); System.out.println("n"); System.out.print("F: Go out and Fight "); System.out.println("n"); System.out.print("R: Rest "); System.out.println("n"); System.out.print("C: Check Stats "); System.out.println("n"); System.out.print("Q: Quit "); int input = System.in.read(); System.out.println("You typed: " + (char) input); switch (input) { case 'f': System.out.println("Continue the game"); break; case 'r': System.out.println("Players should rest"); break; case 'c': System.out.println("Checking the status of the game"); System.out.print("Goodman has " + goodTotal + " points and Monster has " + monTotal + " points"); System.out.println("n"); break; case 'q': System.out.println("Game over"); System.exit(input); break; default: System.out.println("Invalid selection"); break; } // Set value of minimum and maximum damage int minDmg = 2; int maxDmg = 15; // Get random number; int damage = minDmg + Double.valueOf(Math.random() * (maxDmg - minDmg)).intValue(); int damage2 = minDmg + Double.valueOf(Math.random() * (maxDmg - minDmg)).intValue(); // remove value of damage from started value to get total value remaining goodTotal = goodTotal - damage; monTotal = monTotal - damage2; // print message if still in the game if (goodTotal > 0) { System.out.println("Goodman has " + goodTotal + " points left. Not bad,Man! "); } // if Goodman survives round 2 print a message of encouragement if (goodTotal > 0 && count > 1 && count <= 2) { System.out.print("This is encouraging. Goodman has lasted past roundhh " + count + ". "); // print new message if Goodman passes round 3 } else if (goodTotal > 0 && count == 3) { System.out.print("Goodman is as strong as Samson. He has lasted round " + count + " and still looks strong."); System.out.print(" 10 hit points has been added to your total"); } if (monTotal > 0) { System.out.println("Wait,Monster has a total of " + monTotal + " points and is still in the game"); } // exit if have less than 0 point,and print game over. Congratulate the winner if (goodTotal < 0) { System.out.println("Goodman you are out of the game"); System.out.println("The monster will take over the village. This is sad"); System.out.println("Game Over!"); } else if (monTotal < 0) { System.out.println("Goodman has been victorious"); System.out.println("The monster is dead. The people live!!!!"); System.out.println("Game Over!"); } System.out.println("This is the end of round " + count + " "); System.out.println("n"); count = count + 1; } } 解决方法
在循环上使用标签:
loop: while (goodTotal > 0 && monTotal > 0) { // ... switch (input) { case 'f': // ... break loop; case 'r': // ... break loop; // ... } // ... } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |