當用戶用另一種方法寫他的名字而不是顯示他的名字時,我試圖撰寫簡單的代碼字串名稱保持為空的問題并且它不會改變
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
String name="";
saisir(name);
System.out.println("your name is " name);
}
static String saisir (String title){
Scanner s=new Scanner(System.in);
System.out.println("write your name");
String name = s.nextLine();
return name;
}
}
uj5u.com熱心網友回復:
在 Java 中,方法是按值傳遞的,這意味著您作為引數發送的 String 不會受到方法內部更改的影響(盡管您實際上并未更改它:P)。它使用它的副本。如果您想要更改名稱,您應該像建議的其他答案一樣在 main() 方法中進行分配。
name = saisir();
因為你也不需要那里的引數。
uj5u.com熱心網友回復:
代碼如下:
name = saisir(name);
或更好:
name = saisir();
并洗掉title引數,因為您不使用它。
uj5u.com熱心網友回復:
您正在回傳名稱,但沒有保留它。您正在傳遞一個標題,但沒有使用它。讓我們解決這兩個問題。喜歡,
public static void main(String[] args) {
String name = saisir();
System.out.println("your name is " name);
}
static String saisir() {
Scanner s=new Scanner(System.in);
System.out.println("write your name");
return s.nextLine();
}
uj5u.com熱心網友回復:
像這樣試試
public class Main {
public static void main(String[] args) {
String name = "";
name = saisir(); //set "name" equal to the String returned by saisir()
System.out.println("your name is " name);
}
static String saisir() { //there is no need for this method to take any parameters
Scanner s = new Scanner(System.in);
System.out.println("write your name");
String name = s.nextLine();
return name;
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/394212.html
上一篇:從基類C 呼叫重寫的方法
