[英]Why can't I modify a LinkedList declared outside a loop inside said loop?
[英]I declared my variable before the if-loop but I can't access it outside of the loop?
所以我需要在循环之外使用我的变量,但它从 if 循环之一内部获取它的值,但我不断收到此错误:
变量
newLastName
已经在方法main(java.lang.String[])
但是我从来没有收到变量newFirstName
错误。
import java.util.Scanner;
public class Meme
{
public static void main (String[] args)
{
Scanner scan = new Scanner (System.in);
System.out.println("Please enter your first name.");
String firstName = scan.nextLine();
char firstChar = firstName.charAt(0);
System.out.println("Please enter your last name.");
String lastName = scan.nextLine();
char lastChar = lastName.charAt(0);
String newFirstName = null;
if (firstChar =='A')
{
String newfirstname = new String("Applebees");
}
if (firstChar =='B')
{
String newfirstname = new String("Btchstick");
}
if (firstChar =='C')
{
String newfirstname = new String("Cathy");
}
if (firstChar =='D')
{
String newfirstname = new String("Donger");
}
if (firstChar =='E')
{
String newfirstname = new String("Egg");
}
String newLastName = null;
if (lastChar =='A')
{
String newLastName = new String("Ant Hill Supreme");
}
if (lastChar =='B')
{
String newLastName = new String("Blue Jay Junior");
}
if (lastChar =='C')
{
String newLastName = new String("...Catwoman?");
}
if (lastChar =='D')
{
String newLastName = new String("Dipstick");
}
if (lastChar =='E')
{
String newLastName = new String("Egg-Egg");
}
System.out.println("Your new name is: " + newFirstName + " " + newLastName);
}
}
你再宣布它是否块内。 不要这样做。
改变
String newFirstName = null;
if (firstChar =='A')
{
// the variable below is declared inside the if block and is
// thus local to and visible only in the if block
String newfirstname = new String("Applebees");
}
到
String newFirstName = null;
if (firstChar =='A')
{
newFirstName = "Applebees";
}
编辑:根据paisanco的评论:
另外有一个错字,块外的newFirstName,块内的newfirstname
编辑 2:根据elliott-frisch的评论:
请不要使用
new String(...)
。
这通过阻止 Java 在 String 池时使用 String 池来不必要地创建新对象。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.