在用户输入时中断 while-loop



我有这个代码:

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变量重演为true,循环再次运行,并提示用户输入j或n,表示他/她是否要继续程序。但是 valg.contains("j")) 不起作用。之前我一直需要将可能的选项保存在自己的变量中,然后使用"=="运算符使程序检查相等性。但是有没有更简单的方法?比如,等于什么的?

valg不是String,而是charchar不是对象,而是基元,因此它没有功能。

一个char也只是一个角色,永远,因此甚至提供contains都没有意义,无论是它是还是不是......

尝试使用类似...

if(valg == 'j')){

。相反

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

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();