1

好的,这里是代码,第一部分试图继续滚动 2 个骰子,直到它们加到 7 或 11,然后继续其余代码。我只能让它滚动一次,如果它是 7 或 11,代码就会停止。

import java.io.*;

public class JavaOlympics {

    public static void main(String args[]) throws IOException {
        int die1, die2, total;
        // Continue loop until reaches a total of 7 or total of 11
        while (true) {
            die1 = 1 + (int) (Math.random() * 6);
            die2 = 1 + (int) (Math.random() * 6);
            // Display the dice roll
            System.out.println("Die_1 = " + die1);
            System.out.println("Die_2 = " + die2);
            // Add the results
            total = die1 + die2;
            // Output total
            System.out.println("Total = " + total);
            System.out.println();
            // Break loop when total of 7 or 11 is reached
            if (total == 7 || total == 11)
                break;

            String s1, s2;
            // DataInputStream dis = new DataInputStream(System.in); //deprecated
            BufferedReader dis = new BufferedReader(new InputStreamReader(System.in));
            // Ask for string input
            System.out.println("Input two strings one by one");
            s1 = dis.readLine();
            s2 = dis.readLine();
            // Organize strings in alphabetical order
            System.out.println("\nStrings in alphabetical order");
            if (s1.compareTo(s2) <= 0) {
                System.out.println(s1);
                System.out.println(s2);
            } else {
                System.out.println(s2);
                System.out.println(s1);
            }
            // Count characters in the strings
            System.out.println("\nNo.of characters");
            System.out.println(s1 + " :: " + s1.length());
            System.out.println(s2 + " :: " + s2.length());

            // Convert strings between lowercase and uppercase
            System.out
                    .println("\nFirst String in Uppercase and Second String in Lowercase");
            System.out.println(s1.toUpperCase());
            System.out.println(s2.toLowerCase());

            String s;
            // DataInputStream dis2 = new DataInputStream(System.in); // deprecated
            BufferedReader dis2 = new BufferedReader(new InputStreamReader(System.in));
            System.out.println("Enter a sentence");
            // Request sentence input from user
            s = dis2.readLine();
            // Count number of spaces
            int space_count = 0;
            for (int i = 0; i < s.length(); i++) {
                if (s.charAt(i) == ' ') {
                    space_count++;
                }
            }
            // Output number of words
            System.out.println("Number of words = " + (space_count + 1));
            // Output number of characters and average characters per word
            System.out.println("Number of characters = " + (s.length()));
            System.out.println("Average number of characters/word = "
                    + (1.0 * (s.length() / space_count)));
        }
    }
}
4

3 回答 3

0

然后继续剩下的代码

您的所有代码都包含在while循环中。当你break离开它时,没有更多的代码可以执行。

看你是否使用了合理的缩进会容易得多。

要修复,您可能只需要移动一个右括号。

于 2013-01-20T20:16:09.443 回答
0

您的所有代码都在 while 循环内,您错过了需要循环结束的封闭括号

于 2013-01-20T20:17:28.183 回答
0

你到底想在你的代码中做什么。您的代码工作正常,但它会运行到一个循环中,除非并且直到 2 个骰子的总和的值等于 11 或 7。

您的整个代码都在 while 循环中。因此,根据我对您问题的理解,如果您希望在 while 循环完成后执行其余代码,则只需按如下方式关闭 while 循环

while(true)
{
die1 = 1 + (int)(Math.random()*6);
die2 = 1 + (int)(Math.random()*6);
//Display the dice roll
System.out.println("Die_1 = " + die1);
System.out.println("Die_2 = " + die2);
//Add the results
total = die1 + die2;
//Output total
System.out.println("Total = " + total);
System.out.println();
//Break loop when total of 7 or 11 is reached
if (total == 7 || total == 11) break;
} // close your while loop here and remove one brace at the end of your class.

如果我的理解有误可以指正

于 2013-01-20T20:50:05.543 回答