Форум программистов, компьютерный форум, киберфорум
Java для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 0
Регистрация: 08.11.2019
Сообщений: 48

Программа пропускает if

24.10.2022, 20:56. Показов 564. Ответов 10
Метки java (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте, только начинаю разбираться в Java и возникла проблема, никак не могу понять как ее решить. Программа работает правильно, но полностью игнорирует все if и else if в конце программы, и сразу начинает делать действия после них. Почему это происходит? Как можно заставить это работать? Подскажите пожалуйста!

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
import java.util.Scanner;
 
public class Program {
 
    public static void main(String[] args) {
        System.out.println((deg(23, 54, 21)));
        System.out.println((arg(23.90583333333333)));
        System.out.println((geo_one(25, 140, 124.00, 217, 14, 23)));
        System.out.println((geo_two(247.32, 870.54, 705.65, -567.83)));
    }
 
    static double deg(double num_1, double num_2, double num_3) {
        return (num_1 + num_2 / 60 + num_3 / 3600);
    }
 
    static String arg(double a) {
        int g = (int) a;
        int m = (int) ((a - g) * 60);
        int s = (int) ((((a - g) * 60) - m) * 60);
        String answ = Integer.toString(g) + "°" + Integer.toString(m) + "'" + Integer.toString(s) + "″";
        return answ;
    }
 
    static String geo_one(double Xa, double Ya, double d, double a_1, double a_2, double a_3) {
        double a = (a_1 + a_2 / 60 + a_3 / 3600);
        System.out.println(a);
        double cos = Math.cos(Math.toRadians(a));
        double sin = Math.sin(Math.toRadians(a));
        double pr_X = d * cos;
        double pr_Y = d * sin;
        double Xb = Xa + pr_X;
        double Yb = Ya + pr_Y;
        String one = Double.toString(Xb) +"м " + Double.toString(Yb) + "м ";
        return one;
    }
    static String geo_two(double XA, double YA, double XB, double YB) {
 
        double Pr_X = XB - XA;
        double Pr_Y = YB - YA;
        double t = (Math.abs((Pr_Y / Pr_X)));
        double r = Math.toDegrees(Math.atan((t)));
        double ra = 0;
 
        if (Pr_X < 0 && Pr_Y < 0) {
            ra = 360-r;
        } else if (Pr_X < 0 && Pr_Y > 0) {
            ra = 180-r;
        } else if (Pr_X > 0 && Pr_Y > 0) {
            ra = r - 0;
        } else if (Pr_X>0 && Pr_Y>0) {
            ra = r-180;
        }
 
        double d_1 = Pr_X / Math.cos(Math.toRadians(ra));
        double d_2 = Pr_Y / Math.sin(Math.toRadians(ra));
        double y = Math.sin(Math.toRadians(ra));
        double d_3 = Math.sqrt(Math.pow(Pr_X, 2) + Math.pow(Pr_Y, 2));
        String two =  Double.toString(ra) + " " + Double.toString(d_1) + " " + Double.toString(d_2) + " " + Double.toString(d_3) + " ";
        return two;
 
    }
 
}
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
24.10.2022, 20:56
Ответы с готовыми решениями:

Пройдет ли тест у такой программы? (прокомментируйте пожалуйста, программа пропускает, но я сомневаюсь)
Программа package ru.job4j; import java.util.Arrays; /** * Created by Стас on 10.02.2017. */

программа пропускает строку
редактирую, случайно нажал на отправить

Программа пропускает cin >>
Программа состоит из 2 частей. В 1 ввод имени и числа, например &quot;anna 6&quot;, выйти из цикла можно через Ctrl+Z. Во 2 части она должна искать...

10
 Аватар для Coffeini
753 / 370 / 133
Регистрация: 01.02.2020
Сообщений: 1,096
Записей в блоге: 1
24.10.2022, 21:13
Мб дебагер запустить? Сразу понятна причина будет и наглядно.
0
0 / 0 / 0
Регистрация: 08.11.2019
Сообщений: 48
24.10.2022, 21:19  [ТС]
я не знаю что это такое, да и нет у меня его
0
 Аватар для Coffeini
753 / 370 / 133
Регистрация: 01.02.2020
Сообщений: 1,096
Записей в блоге: 1
24.10.2022, 21:20
Про отладку программ
0
0 / 0 / 0
Регистрация: 08.11.2019
Сообщений: 48
24.10.2022, 21:29  [ТС]
У меня нет сейчас возможности устанавливать посторонние приложения на ноутбук. онлайн приложения попробовала только что, но они ничего дельного не показывают, кроме результата, который снова пропускает if, поэтому этот вариант мне не подходит, но спасибо
0
 Аватар для Coffeini
753 / 370 / 133
Регистрация: 01.02.2020
Сообщений: 1,096
Записей в блоге: 1
24.10.2022, 21:33
Не ну можешь методом логгирования пользоваться - везде ставишь println на интересующие тебя значения переменных, в данном случае Pr_X, PrY, и смотришь, что тебе выводит.
0
0 / 0 / 0
Регистрация: 08.11.2019
Сообщений: 48
24.10.2022, 21:50  [ТС]
В том то и проблема, что выводит он все, абсолютно пропуская все if, и я не понимаю почему. Он должен изменит r, я поняла что он его не изменяет, попыталась ввести новую переменную и через нее менять r, но он точно так же все просто пропускает
0
1 / 0 / 1
Регистрация: 24.10.2022
Сообщений: 5
24.10.2022, 22:05
Лучший ответ Сообщение было отмечено foxigerl2010 как решение

Решение

я тоже новичок и особо не понимаю что твой код делает, но есть пару нюансов
тут у тебя вроде один и тот же if
Java
1
2
3
4
5
else if (Pr_X > 0 && Pr_Y > 0) {
            ra = r - 0;
        } else if (Pr_X>0 && Pr_Y>0) {
            ra = r-180;
        }
можешь так попробовать, у тебя просто логические операторы не дают войти в эти ифы, так как вседа фолс
Java
1
2
3
4
5
6
7
8
9
    if (Pr_X < 0 || Pr_Y < 0) {
            ra = 360 - r;
        } else if (Pr_X <= 0 && Pr_Y >= 0) {
            ra = 180 - r;
        } else if (Pr_X >= 0 && Pr_Y >= 0) {
            ra = r - 0;
        } else if (Pr_X >= 0 || Pr_Y >= 0) {
            ra = r - 180;
        }
0
0 / 0 / 0
Регистрация: 08.11.2019
Сообщений: 48
24.10.2022, 22:09  [ТС]
Спасибо вам, все правильно, глупая ошибка
0
77 / 50 / 29
Регистрация: 21.10.2022
Сообщений: 114
24.10.2022, 22:15
Тоже не понимаю смысла программы, но как уже заметили выше у тебя повторения условия, просто замени его на (ну и убедись что точно граничные не нужны >= или <=)

Java
1
2
3
       } else if (Pr_X>0 && Pr_Y<0) {
                ra = r-180;
            }
0
0 / 0 / 0
Регистрация: 08.11.2019
Сообщений: 48
24.10.2022, 22:17  [ТС]
Да, я уже поняла, действительно не заметила эту глупую ошибку, исправила и все работает как надо
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
24.10.2022, 22:17
Помогаю со студенческими работами здесь

Программа пропускает cin
При вводе всех данных в 1( ввод массива структур) программа пропускает cin и повторяет меню выбора #include &lt;stdio.h&gt; ...

Программа пропускает анимацию
Есть 3 анимации: 1.Влево. 2.Влево-вверх. 3.Влево-вниз. При назатии и удержании клавиши &quot;влево&quot; проигрывается 1-я...

Программа пропускает scanf
Привет всем) Программа пропускает scanf(),не понятно почему, а так же проблема с записью файла. Подскажи в чем проблема. Заранее...

Программа пропускает cin
Уже несколько раз сталкивался с проблемами функции &quot;cin&quot; по задумке, в моей программе, он должен ожидать ввода цифры, а после выполнять...

Программа пропускает cin
не могу понять почему программа пропускает cin нужно было написать программу ввода данных в массив структур, отсортировать по дататм...


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
Как я обхитрил таблицу Word
Alexander-7 21.03.2026
Когда мигает курсор у внешнего края таблицы, и нам надо перейти на новую строку, а при нажатии Enter создается новый ряд таблицы с ячейками, то мы вместо нервных нажатий Энтеров мы пишем любые буквы. . .
Krabik - рыболовный бот для WoW 3.3.5a
AmbA 21.03.2026
без регистрации и смс. Это не торговля, приложение не содержит рекламы. Выполняет свою непосредственную задачу - автоматизацию рыбалки в WoW - и ничего более. Однако если админы будут против -. . .
Программный отбор значений справочника
Maks 21.03.2026
Установка программного отбора значений справочника "Сотрудники" из модуля формы документа. В качестве фильтра для отбора служит предопределенное значение перечислений. Процедура. . .
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru