从内部 class 访问局部变量 user_input;需要声明为final
local variable user_input is accessed from within inner class; needs to be declared final
import java.util.Scanner;
public class Testing {
public static void main(String [] args) {
Scanner user_input = new Scanner( System.in );
String start;
System.out.print("(Don't put capital letters) ");
String color;
System.out.print("Enter Your Favorite Color: ");
color = user_input.next ( );
String animal;
System.out.print("Enter Your Favorite Animal: ");
animal = user_input.next ( );
String preference;
preference = color + " and that your favorite animal is a " + animal;
System.out.println("From the information I gathered, I figured out that you like the color " + preference);
class A {
public void Main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.println("Do you want to hear a joke?");
String a = user_input.next ( );
if (a.equalsIgnoreCase("yes")) ;
System.out.println("What did the fish say when he ran into a wall? Dam");
if(a.equalsIgnoreCase("no")) ;
System.out.println("Oh..."); }
}
}
}
这就是错误
Testing.java:29: error: local variable user_input is accessed from within inner class; needs to be declared final
String a = user_input.next ( );
^
1 个错误
我一直在弄乱代码,错误越来越多,所以我决定问问比我更有经验的人。我只使用了 java 一天,这是我创建的第一个程序,我搜索了至少 2 小时的解决方案但找不到,所以我决定问问。我之前让它编译过,但它没有 "user_input.next" 所以它表现得就像 "class A" 下面的整行代码是不可见的,它不会让我输入任何东西,让它变得毫无用处。我不是输入 user_input 这样我就可以输入一些东西,但是出现了很多错误,但这是不断出现的一个错误。
错误很可能是由于您声明了一个扫描器 (input
),然后使用了另一个 class (user_input
)
的扫描器
试试这个代码
import java.util.Scanner;
public class Testing
{
public void input1()
{
Scanner user_input = new Scanner( System.in );
System.out.print("(Don't put capital letters) ");
String color;
System.out.print("Enter Your Favorite Color: ");
color = user_input.next();
String animal;
System.out.print("Enter Your Favorite Animal: ");
animal = user_input.next();
String preference;
preference = color + " and that your favorite animal is a " + animal;
System.out.println("From the information I gathered, I figured out that you like the color " + preference);
}
public void input2()
{
Scanner input = new Scanner(System.in);
System.out.println("Do you want to hear a joke?");
String a = input.next();
if(a.equalsIgnoreCase("yes"))
{
System.out.println("What did the fish say when he ran into a wall? Dam");
}
else if(a.equalsIgnoreCase("no"))
{
System.out.println("Oh...");
}
}
public static void main(String[] args)
{
Testing tS = new Testing();
tS.input1();
tS.input2();
}
}
这段代码中有两种方法; input1
和 input2
。这些方法包含您尝试与命令控制台进行的两个对话。然后在 main
方法中初始化 class 并运行这两个方法。
我希望你愿意这样做
public class Test2 {
private static Scanner user_input = new Scanner(System.in);
private static boolean wantsToContinue(){
System.out.println("Do you want to hear a joke?");
String a = user_input.next();
if(a.equalsIgnoreCase("yes"))
return true;
else
return false;
}
public static void main(String[] args)
{
System.out.print("(Don't put capital letters) ");
System.out.print("Enter Your Favorite Color: ");
String color = user_input.next();
System.out.print("Enter Your Favorite Animal: ");
String animal = user_input.next();
String preference = color + " and that your favorite animal is a " + animal;
System.out.println("From the information I gathered, I figured out that you like the color " + preference);
if(!wantsToContinue()){
//If not want to continue just return
System.out.println("Oh...");
return;
}
//Continue with your next joke here
System.out.println("What did the fish say when he ran into a wall? Dam");
}
}
import java.util.Scanner;
public class Testing {
public static void main(String [] args) {
Scanner user_input = new Scanner( System.in );
String start;
System.out.print("(Don't put capital letters) ");
String color;
System.out.print("Enter Your Favorite Color: ");
color = user_input.next ( );
String animal;
System.out.print("Enter Your Favorite Animal: ");
animal = user_input.next ( );
String preference;
preference = color + " and that your favorite animal is a " + animal;
System.out.println("From the information I gathered, I figured out that you like the color " + preference);
class A {
public void Main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.println("Do you want to hear a joke?");
String a = user_input.next ( );
if (a.equalsIgnoreCase("yes")) ;
System.out.println("What did the fish say when he ran into a wall? Dam");
if(a.equalsIgnoreCase("no")) ;
System.out.println("Oh..."); }
}
}
}
这就是错误
Testing.java:29: error: local variable user_input is accessed from within inner class; needs to be declared final
String a = user_input.next ( );
^
1 个错误
我一直在弄乱代码,错误越来越多,所以我决定问问比我更有经验的人。我只使用了 java 一天,这是我创建的第一个程序,我搜索了至少 2 小时的解决方案但找不到,所以我决定问问。我之前让它编译过,但它没有 "user_input.next" 所以它表现得就像 "class A" 下面的整行代码是不可见的,它不会让我输入任何东西,让它变得毫无用处。我不是输入 user_input 这样我就可以输入一些东西,但是出现了很多错误,但这是不断出现的一个错误。
错误很可能是由于您声明了一个扫描器 (input
),然后使用了另一个 class (user_input
)
试试这个代码
import java.util.Scanner;
public class Testing
{
public void input1()
{
Scanner user_input = new Scanner( System.in );
System.out.print("(Don't put capital letters) ");
String color;
System.out.print("Enter Your Favorite Color: ");
color = user_input.next();
String animal;
System.out.print("Enter Your Favorite Animal: ");
animal = user_input.next();
String preference;
preference = color + " and that your favorite animal is a " + animal;
System.out.println("From the information I gathered, I figured out that you like the color " + preference);
}
public void input2()
{
Scanner input = new Scanner(System.in);
System.out.println("Do you want to hear a joke?");
String a = input.next();
if(a.equalsIgnoreCase("yes"))
{
System.out.println("What did the fish say when he ran into a wall? Dam");
}
else if(a.equalsIgnoreCase("no"))
{
System.out.println("Oh...");
}
}
public static void main(String[] args)
{
Testing tS = new Testing();
tS.input1();
tS.input2();
}
}
这段代码中有两种方法; input1
和 input2
。这些方法包含您尝试与命令控制台进行的两个对话。然后在 main
方法中初始化 class 并运行这两个方法。
我希望你愿意这样做
public class Test2 {
private static Scanner user_input = new Scanner(System.in);
private static boolean wantsToContinue(){
System.out.println("Do you want to hear a joke?");
String a = user_input.next();
if(a.equalsIgnoreCase("yes"))
return true;
else
return false;
}
public static void main(String[] args)
{
System.out.print("(Don't put capital letters) ");
System.out.print("Enter Your Favorite Color: ");
String color = user_input.next();
System.out.print("Enter Your Favorite Animal: ");
String animal = user_input.next();
String preference = color + " and that your favorite animal is a " + animal;
System.out.println("From the information I gathered, I figured out that you like the color " + preference);
if(!wantsToContinue()){
//If not want to continue just return
System.out.println("Oh...");
return;
}
//Continue with your next joke here
System.out.println("What did the fish say when he ran into a wall? Dam");
}
}