1

我有这个代码:

import java.util.*;

class Uke44{
    public static void main(String[]args){

    Scanner input=new Scanner(System.in);
    boolean lokke=true;

    System.out.println("Vennligst oppgi navn: ");
    String navn=input.nextLine();

    while(lokke){

    for(int i=0; i<100; i++){
        System.out.println(navn);
    }

    System.out.println("Gi et nytt navn? j/n: ");
    char valg = input.next().charAt(0);

    if(valg.contains("j")){
        lokke=true;
        System.out.println("Skriv et nytt navn: ");
        navn=input.nextLine();

    }else{
        lokke=false;
    }
    }
    }
}

而我想要它做的是,当用户输入: j 在提示时,它应该只是重新制定 lokke 变量为真,循环再次运行,并提示用户输入 j 或 n 是否他/她想继续这个项目。但是 valg.contains("j")) 不起作用。之前我一直需要将可能的选择保存在自己的变量中,然后使用“==”-操作符让程序检查是否相等。但是有没有更简单的方法?比如,等于还是什么?

4

3 回答 3

1

char 是原始数字类型,因此您需要将代码更改为if(valg == 'j')它才能工作

于 2013-10-14T23:22:30.607 回答
1

valg不是a String,是a char。Achar不是一个对象,它是一个原始的,因此它没有功能。

Achar也只是一个字符,因此,即使提供 也没有任何意义contains,无论是或不是......

尝试使用类似...

if(valg == 'j')){

...反而

于 2013-10-14T23:23:35.750 回答
0
import java.util.*;

class Uke44{
    public static void main(String[]args){

    Scanner input=new Scanner(System.in);
    boolean lokke=true;

    System.out.println("Vennligst oppgi navn: ");
    String navn=input.nextLine();

    while(lokke)
    {

    for(int i=0; i<2; i++)
        System.out.println(navn);


    System.out.println("Gi et nytt navn? j/n: ");
    char valg = input.next().charAt(0);
    System.out.println(valg);

    if(valg=='j')
    {
        lokke=true;
        System.out.println("Skriv et nytt navn: ");
        Scanner input1=new Scanner(System.in);
        navn=input1.nextLine();



    }
    else
        lokke=false;

    } 
    }
}

这是正确的代码。

基本上是改变的部分:

 if(valg=='j')
    {
        lokke=true;
        System.out.println("Skriv et nytt navn: ");
        Scanner input1=new Scanner(System.in);
        navn=input1.nextLine();
于 2013-10-15T14:18:17.940 回答