[英]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.