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"))