printf和循环条件中的java语句

printf和循环条件中的java语句,java,Java,产生错误“赋值的左侧必须是变量” 而且 System.out.printf("\n" + "\nEnter a question: " + question=stdin.nextLine() + "\nEnter a guess: " + Guess=stdin.nextLine()); 生成“令牌上的语法错误”、“,。应为” 我希望printf忽略那些不能打印任何东西的东西。如何做到这一点?无论是问题还是猜测都不是可变的。也许Guess是一

产生错误“赋值的左侧必须是变量”

而且

        System.out.printf("\n"
        + "\nEnter a question: " +  question=stdin.nextLine()
        + "\nEnter a guess: " +  Guess=stdin.nextLine());
生成“令牌上的语法错误”、“,。应为”
我希望printf忽略那些不能打印任何东西的东西。如何做到这一点?

无论是
问题
还是
猜测
都不是可变的。也许
Guess
是一个类,而不是一个变量。

赋值不是自动赋值的:

do
        {
            ...
        } while(System.out.printf("\nWould you? "), stdin.nextLine().equalsIgnoreCase("y"))
将stdin.nextLine()的结果赋值给question,但赋值结果为void,而不是question

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

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

question = stdin.nextLine ();  
在正确声明所有代码后,尝试将上述代码更改为多行代码

System.out.printf("\n"
        + "\nEnter a question: " +  question=stdin.nextLine()
        + "\nEnter a guess: " +  Guess=stdin.nextLine());
下面是我要做的。。while()语句也有同样的问题

question=stdin.nextLine();
Guess=stdin.nextLine();
System.out.printf("\n"
        + "\nEnter a question: " +  question
        + "\nEnter a guess: " +  Guess);
试试下面的方法

do
        {
            ...
        } while(System.out.printf("\nWould you? "), stdin.nextLine().equalsIgnoreCase("y"))
String answer=“n”;
做
{
...
System.out.printf(“\n您愿意吗?”);
答案=;
}而(!answer.equalsIgnoreCase(“y”))
<>你看起来像是语法问题,遵循C++的方式。试着去接触一些java基础知识的书籍,你们都准备好了


快乐编码

你能发布你的代码行所使用的全部函数吗?希望它能有所帮助:在Java中,“Guess”与“Guess”不同。如果“Guess”是一个变量,那么为变量选择它是一个非常糟糕的名称。大多数Java程序使用以大写字母开头的类名和以小写字母开头的变量名。这不是一个要求,而是一个很好的惯例。我不想打印它们,它们是在打印时打印出来的。我试图在printf语句和循环条件中插入语句。我希望printf忽略那些不能打印任何东西的东西。怎么做?@user93200:
S.o.println
打印Int、Float、Long、Boolean。。。和字符串,并调用对象的
.toString()
,如果创建调用
S.o.p(“foo”+对象)
但赋值不是对象,这意味着对赋值的调用是非法的,无法从编译器中解析。将赋值包装到方法中不会有帮助,因为对局部变量的初始化将丢失。
System.out.printf()不允许赋值变量
为什么这样认为?试试这个:
System.out.println(i=3)
。实际上,不能在字符串concat中使用赋值<代码>System.out.println(“这是i:+(i=3))也可以。
String answer = "n";
do
{

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

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