printf和循环条件中的java语句

时间:2012-03-29 09:34:48

标签: java

        System.out.printf("\n"
        + "\nEnter a question: " +  question=stdin.nextLine()
        + "\nEnter a guess: " +  Guess=stdin.nextLine());

产生错误“作业的左侧必须是变量”。

另外,

do
        {
            ...
        } while(System.out.printf("\nWould you? "), stdin.nextLine().equalsIgnoreCase("y"))

生成“令牌上的语法错误”,“,。expected” 我希望printf忽略那些不打印任何内容的东西。怎么做?

3 个答案:

答案 0 :(得分:0)

questionGuess不是变量。也许Guess是一个类,而不是一个变量。

答案 1 :(得分:0)

分配不会自动分配:

question = stdin.nextLine ();  

将stdin.nextLine()的结果分配给问题,但是赋值的结果是无效的,而不是问题。

因此,您唯一的解决方案是分两步完成:执行分配,然后,由于nextLine有副作用,请使用println打印指定的值。

答案 2 :(得分:0)

System.out.printf()不允许分配变量。因此,您对以下代码的尝试是错误的。

System.out.printf("\n"
        + "\nEnter a question: " +  question=stdin.nextLine()
        + "\nEnter a guess: " +  Guess=stdin.nextLine());

在正确声明所有代码之后,尝试将上述内容更改为多行代码。

question=stdin.nextLine();
Guess=stdin.nextLine();
System.out.printf("\n"
        + "\nEnter a question: " +  question
        + "\nEnter a guess: " +  Guess);

以下do .. while()语句也有同样的问题。

do
        {
            ...
        } while(System.out.printf("\nWould you? "), stdin.nextLine().equalsIgnoreCase("y"))

尝试以下

String answer = "n";
do
{

...
System.out.printf("\nWould you? ");
answer = <-- Get the user input using System.in -->;

} while (!answer.equalsIgnoreCase("y"))

你看起来像语法问题并遵循C ++方式。尝试亲自阅读一些java基础书籍,你们都准备好了......

快乐编码