簡體   English   中英

突破用戶輸入的while循環

[英]Breaking out of while-loop on user input

我有以下代碼:

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”))不起作用。 在我始終需要將可能的選擇保存在自己的變量中之前,然后使用“ ==-運算符”使程序檢查是否相等。 但是,有沒有更簡單的方法? 喜歡,等於還是什么?

char是原始數字類型,因此您需要將代碼更改為if(valg == 'j') ,它將起作用

valg不是String ,而是一個char char不是對象,而是原始對象,因此沒有功能。

char也是一個字符,因此即使提供contains也不是沒有道理...

嘗試使用類似...

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM