我想说我是Java的新手,所以请不要因为我的杂乱代码而讨厌我。如果您不在键盘上输入任何内容,则不会重复System.out.print("输入您的姓名")。循环四处走动,但不再重复此声明。如果您输入一些字母,则会执行print语句,但我不知道原因。这是一张让它更清晰的图片。可能这是我犯的一个非常容易的错误,但我无法看到它。 感谢您提供任何帮助或线索如何解决此问题。
它的样子:
我想要的是:
package loop;
import java.util.Scanner;
public class while_loop
{
public static void main(String[] args)
{
String word2 = null;
boolean T_F = true;
while (T_F == true)
{
System.out.print("Enter your name:");
Scanner in = new Scanner(System.in);
word2 = in.next().toUpperCase();
if (word2 != null && word2.length() > 3)
{
in.close();
T_F = false;
System.out.println("Done");
}
}
}
}
好吧,好吧解决了。小小的错误。
word2 = in.next().toUpperCase();
应该是
word2 = in.nextLine().toUpperCase();
答案 0 :(得分:0)
你的if语句应该是:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:card_view="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<android.support.v7.widget.CardView
android:id="@+id/card_view1"
android:layout_width="150dp"
android:layout_height="200dp"
android:layout_gravity="center"
android:layout_margin="5dp"
card_view:cardCornerRadius="2dp"
card_view:contentPadding="10dp">
<RelativeLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<ImageView
android:id="@+id/img_appicon"
android:layout_width="100dp"
android:layout_height="100dp"
android:layout_alignLeft="@+id/tv_appname"
android:layout_alignParentTop="true"
android:layout_alignStart="@+id/tv_appname" />
<TextView
android:id="@+id/tv_appname"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/img_appicon"
android:layout_centerHorizontal="true"
android:layout_marginTop="27dp"
android:text="App Name"
android:textAppearance="?android:attr/textAppearanceMedium" />
</RelativeLayout>
</android.support.v7.widget.CardView>
<android.support.v7.widget.CardView
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:card_view="http://schemas.android.com/apk/res-auto"
android:id="@+id/card_view2"
android:layout_width="150dp"
android:layout_height="200dp"
android:layout_gravity="center"
android:layout_margin="5dp"
card_view:cardCornerRadius="2dp"
card_view:contentPadding="10dp">
<RelativeLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<ImageView
android:id="@+id/img_appicon2"
android:layout_width="100dp"
android:layout_height="100dp"
android:layout_alignLeft="@+id/tv_appname2"
android:layout_alignParentTop="true"
android:layout_alignStart="@+id/tv_appname2" />
<TextView
android:id="@+id/tv_appname2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/img_appicon2"
android:layout_centerHorizontal="true"
android:layout_marginTop="27dp"
android:text="App Name"
android:textAppearance="?android:attr/textAppearanceMedium" />
</RelativeLayout>
</android.support.v7.widget.CardView>
</LinearLayout>
Scanner.next()只会返回空格之前的内容。
Scanner.nextLine()会在读取当前行后自动将扫描仪向下移动。