Форум программистов, компьютерный форум, киберфорум
Java SE (J2SE)
Войти
Регистрация
Восстановить пароль
 
0 / 0 / 0
Регистрация: 04.08.2015
Сообщений: 18
1

Программа рассчитывает результат только после того, как вводишь 2ое число 3 раза

04.08.2015, 17:10. Просмотров 473. Ответов 11
Метки нет (Все метки)

Программа рассчитывает результат только после того, как вводишь 2е число 3 раза. В чем проблема?
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
import java.util.*;
 
public class Main {
    public static void main(String[] args) {
        System.out.println("Enter 1st number: ");
        Scanner sc = new Scanner(System.in);
        int  i = sc.nextInt();
        System.out.println("Enter 2nd number: ");
        Scanner sca = new Scanner(System.in);
        int  j = sca.nextInt();
 
        if(sc.hasNextInt()&&sca.hasNextInt()) {
            System.out.println("Sum = "+(i+j));}
        else {
            System.out.println("Error");
        }
        }
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
04.08.2015, 17:10
Ответы с готовыми решениями:

Вводишь число от 1 до 7 и выводит день недели.Вводишь 0 выход.
Требуется помощь в простенькой программе на С++. Вводишь число от 1 до 7 и выводит день...

Не включается компьютер с первого раза после того, как я выдернул шнур из розетки.
пару раз очень торописля и не дожидаясь выкл компьютера выдергивал кабель из разетки, после этого...

Как сделать что бы onclick срабатывал только после второго раза?
<div style="position: absolute; top: 0px; left: 0px; width: 100px; height: 100px; id="div1"...

Как создать ограничение для ScrollBar? Например, чтобы можно было вправо прокрутить только 3 раза (нажать вправо мышкой только 3 раза, а дальше нельзя
Как создать ограничение для ScrollBar? Например, чтобы можно было вправо прокрутить только 3 раза...

11
Автоматизируй это!
2601 / 1647 / 571
Регистрация: 30.03.2015
Сообщений: 6,000
04.08.2015, 17:57 2
1) зачем заводишь 2 сканнера если можно читать одним?
2) лучше читать Стринг и потом парсить в интегер
0
54 / 45 / 97
Регистрация: 17.08.2014
Сообщений: 157
04.08.2015, 22:55 3
Может так?
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
public static void main(String args[]){
     Scanner sc = new Scanner(System.in);   
     int a, b;
     try{
         System.out.println("Enter 1st number:");
         a = Integer.parseInt(sc.nextLine());
         System.out.println("Enter 2nd number: ");
         b = Integer.parseInt(sc.nextLine());
         System.out.println("Sum = " + (a + b));
     } catch (Exception e){
         System.out.println("Error");
     }           
    }
0
95 / 95 / 50
Регистрация: 07.07.2015
Сообщений: 208
Завершенные тесты: 1
05.08.2015, 00:31 4
3 раза надо вводить, потому что
Цитата Сообщение от 1MeDVeD1 Посмотреть сообщение
if(sc.hasNextInt()&&sca.hasNex tInt()) {
хочет еще два числа. Смысл этого условия?

Кликните здесь для просмотра всего текста

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
import java.util.Scanner;
 
/**
 * Вводим два числа с клавиатуры,
 * складываем
 */
public class ScannerSample2 {
    public static void main(String[] args) {
        Scanner s = new Scanner(System.in);
        int sum = 0;
        try {
            System.out.println("Введите первое число: ");
            sum += s.nextInt();
            System.out.println("Введите второе число: ");
            sum += s.nextInt();
            System.out.printf("Sum = %d\n", sum);
        } catch (Exception e) {
            System.out.println("Введены не верные данные!");
        }
    }
}
0
89 / 89 / 20
Регистрация: 19.02.2010
Сообщений: 966
05.08.2015, 08:36 5
1MeDVeD1, ну если честно не понял прикол с оператором if...
0
2 / 2 / 5
Регистрация: 31.03.2014
Сообщений: 102
05.08.2015, 08:50 6
Извините за вмешательство...
Это выражение:

Java
1
j = sca.nextInt();
нельзя повторно вызывать.
Ведь если, например, так сделать:

Java
1
2
3
 j = sca.nextInt();
            j = sca.nextInt();
            j = sca.nextInt();
Или так:

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
import java.util.*;
 
public class zm {
    
        public static void main(String[] args) {
            System.out.println("Enter 1st number: ");
            Scanner sc = new Scanner(System.in);
            int  i = sc.nextInt();
            System.out.println("Enter 2nd number: ");
            Scanner sca = new Scanner(System.in);
            int  j = sca.nextInt();
            
            if (sc.hasNextInt() == true){           
               System.out.println();
                    }
    }
 
}
То будет требовать ввода числа столько раз, сколько раз вызыван метод .nextInt();. Он же должен что-то считывать с потока ввода. Вот и требует.
0
0 / 0 / 0
Регистрация: 04.08.2015
Сообщений: 18
05.08.2015, 09:22  [ТС] 7
Цитата Сообщение от asus Посмотреть сообщение
1MeDVeD1, ну если честно не понял прикол с оператором if...
проверка на целочисленность введенных цифр
0
89 / 89 / 20
Регистрация: 19.02.2010
Сообщений: 966
05.08.2015, 09:27 8
Цитата Сообщение от 1MeDVeD1 Посмотреть сообщение
проверка на целочисленность введенных цифр
думаете?
тогда вопрос Вы запускали свое приложение? что дает если вы пишете, что:
первый аргумент = 1
а второй = 2
ответ будет 3 или эррор?

и тем более когда Вы парсируете на тип инт если я не ошибаюсь то всегда Вы получите целое число...
0
0 / 0 / 0
Регистрация: 04.08.2015
Сообщений: 18
05.08.2015, 09:53  [ТС] 9
Цитата Сообщение от asus Посмотреть сообщение
думаете?
тогда вопрос Вы запускали свое приложение? что дает если вы пишете, что:
первый аргумент = 1
а второй = 2
ответ будет 3 или эррор?

и тем более когда Вы парсируете на тип инт если я не ошибаюсь то всегда Вы получите целое число....
Вроде справился

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
import java.util.*;
 
public class Main {
    public static void main(String[] args) {
        
        System.out.println("Enter 1st number: ");
        Scanner sc = new Scanner(System.in);
 
       if(sc.hasNextInt()){
          
           int  i = sc.nextInt();
           System.out.println("Enter 2nd number: ");
           Scanner sca = new Scanner(System.in);
                
                if(sca.hasNextInt()){
                    int  j = sca.nextInt();
                    System.out.println("Sum = "+(i+j));}
                
                else {System.out.println("Error");}
       }
        else {System.out.println("Error");}
    }
}
0
89 / 89 / 20
Регистрация: 19.02.2010
Сообщений: 966
05.08.2015, 10:23 10
1MeDVeD1, Вам же предлагали нормальный вариант
зачем столько ИФов если можно через обработчик исключения?
0
0 / 0 / 0
Регистрация: 04.08.2015
Сообщений: 18
05.08.2015, 10:30  [ТС] 11
asus, пока не разобрался как Integer.parseInt(); работает.
0
89 / 89 / 20
Регистрация: 19.02.2010
Сообщений: 966
05.08.2015, 10:40 12
1MeDVeD1, когда вводите в консоле или даже если хтмл с помощью тега инпут Вы всегда вводите строку т.е. String.
Теперь строка Integer.parseInt(); делает точнее изменяет тип со Стринга на Интежер. вот и все. а когда Вы вводишь не число то сразу исключения...
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
05.08.2015, 10:40

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Дано целое число B. Получить B в третьей степени, используя только операцию умножения и только два раза
Дано целое число B. Получить B в третьей степени, используя только операцию умножения и только два...

Компьютер видит диск только после того как его вытащили
Здравствуйте!Не нашел тему,поэтому создам сам.Проблема в том,что компьютер,когда к нему подключают...

LA7912P Запускается только после того, как вытянуть и вставить ОЗУ
Привет всем! Проблемма в том, что ноут запускается только после того, как вытянуть и вставить ОЗУ,...

Найти вероятность того, что гербы выпадут два раза и только подряд
Монету подбрасывают 5 раз. Найти вероятность того, что гербы выпадут два раза и только подряд


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.