Как завершить эту программу, когда пользователь вводит «конец»? - PullRequest
0 голосов
/ 22 апреля 2020

Итак, в основном я пытаюсь выяснить, как остановить эту программу, используя Integer.valueOf(String s) или Integer.parseInt(String s), введя «end» для ввода пользователя

import java.util.Scanner;

public class monkey1{
    public static void main(String[] args){
        Scanner s = new Scanner(System.in);
        int sum = 0;
        int lol = 1;
        do { 
            System.out.print("Enter a number: ");
            lol = s.nextInt();
            sum += lol;
            if (lol > 0) {
                System.out.println("Sum is now: " + sum);
            }
        } while (lol>0);
    }
}

Ответы [ 4 ]

3 голосов
/ 22 апреля 2020

Первый - вам нужно изменить lol=sc.nextInt() на String tmp = s.nextLine()

Второй - сделать

try {
   if (tmp.equals("END")) {
       break;  // This will exit do-while loop
   }
   lol = Integer.parseInt(tmp);
} catch (NumberFormatException e) {
  e.printStackTrace();
  // Here you can also exit loop by adding break. Or just ask user to enter new text.
}

1 голос
/ 22 апреля 2020

вы должны научиться использовать try / catch. Здесь мы go:

String text = "";
    int lol = 1;
    do {
        System.out.print("Enter a number: ");
        text = s.nextLine();
        try {
            lol = Integer.valueOf(text);
        }catch (Exception e){
            System.out.println("Exit");
            System.exit(0);
        }
0 голосов
/ 22 апреля 2020

Вот ваш код

package Phone;

import java.util.Scanner;

public class monkey1{
    public static void main(String[] args){
        Scanner s = new Scanner(System.in);
        int sum = 0;
        int hi = 1;
        do { 
            System.out.print("Enter a number: ");
            String lol = s.nextLine();
            if(lol.equals("end")) {
                break;
        }

        hi = Integer.parseInt(lol);

        sum += hi;
        if (hi > 0) {
            System.out.println("Sum is now: " + sum);
        }
    } while (hi > 0);
}

Что я сделал здесь, я изменил lol на hi для добавления и взял строковый ввод, чтобы вы могли ввести end ...

0 голосов
/ 22 апреля 2020

Я бы предложил проверить, если s.equals ("end") перед преобразованием в int, что-то вроде этого:

do { 
        System.out.print("Enter a number: ");
        String userValue = s.nextLine();
        if(userValue.equals("end")
            break;
        lol = Integer.parseInt(userValue);
        sum += lol;
        if (lol > 0){
            System.out.println("Sum is now: " + sum);
        }
    }while (lol>0);
...