4

ユーザーの名前を尋ねる do-while ループを使用して、Java で小さなコード ブロックを作成しようとしています。コードが探している名前でない場合は、同じことを繰り返すだけです。例えば、

Scanner scan = new Scanner();
do { 
   System.out.println("whats your name?"); 
   String name = scan.nextLine(); 
} while ("jack".equals(name));  ////// <<<<

<<<<どうしたらいいのかわからないとマークしたところです。のようなものが必要ですが!=、文字列では機能しません。

では、ここに何を置けばよいでしょうか?

4

3 に答える 3

12

感嘆符!は、否定または賛辞を表します。while(!"jack".equals(name)){ }

于 2013-06-08T03:47:46.547 に答える
5

ブール値の not ! operator は最もクリーンな方法です。もちろんこうも言えます

if ("jack".equals(name) == false) { ... }

またはあなたは言うことができます

if ("jack".equals(name) != true) { ... }

.equals()である可能性があるオブジェクトを呼び出す場合は注意しnullてくださいNullPointerException。その場合、何か...

if !((myVar == yourVar) || ((yourVar != null) && yourVar.equals(myVar))) { ... } 

... に対してガードし、NullPointerExceptionではない両方を含め、それらが等しくない場合は true になりますnull。かなりの頭の回転ですね。醜いとしても、その論理は健全だと思います。そのためStringUtil、多くのプロジェクトでこのロジックを含むクラスを作成しています。

.equals()そのため、テストしている String ではなく、文字列リテラルでメソッドを呼び出す方がより適切な規則です。

于 2013-06-08T04:00:24.267 に答える
3

置く "!" ジャックからイン。質問を正しく理解すれば解決します。

于 2013-06-08T03:47:04.993 に答える