Arnold Christian Tabada Ответов: 4

Как сделать так, чтобы входные данные больше не были равны 0?


Я использую это как код для своего меню, однако когда второе число выше первого числа, которое оно вводит = 0, как мне это исправить?
Например, первое число: 2, второе число:10, а результат-0 почему?

Что я уже пробовал:

import java.util.Scanner;
public class Main2
{
	public static void main(String[] args) {
	    int choice,firstnum,secondnum;
        Scanner sc = new Scanner(System.in);

	 
	   while(true) {
    		System.out.println("==================================");
    		System.out.println("  S E L E C T  O P E R A T I O N");
    		System.out.println("==================================");
    		System.out.println(" [1] --> Computation of Power");
                System.out.println("----------------------------------");
    		System.out.println("Enter choice:");
    		choice = sc.nextInt();
    		System.out.println("Enter first number:");
    		firstnum = sc.nextInt();
    		System.out.println("Enter second number:");
    		secondnum = sc.nextInt();
    		
    		}
    		else if(choice == 1){
    		   System.out.println("Result: "+(firstnum/secondnum));
    		 
    		}

Greg Utas

Если вы не публикуете никакого кода с примером ввода, который терпит неудачу, как кто-то может вам помочь?

Arnold Christian Tabada

О, моя беда, мне очень жаль.

Patrice T

Запомните одну вещь: в основном мы не знаем, о чем вы говорите, мы не видим ваш экран, мы не можем читать ваши мысли.

Arnold Christian Tabada

Я виноват, мне очень жаль.

4 Ответов

Рейтинг:
2

Richard MacCutchan

В целочисленной арифметике 2/10 = 0.

Но все еще далеко не ясно, что вы пытаетесь сделать.


Рейтинг:
2

Patrice T

Цитата:
первое число: 2, второе число:10, а результат-0 почему?

Может быть результатом деления целых чисел является целое число, таким образом, 2/10 равно 0.
пробовать
((double)firstnum/secondnum)

Возможно, вам стоит ознакомиться с документацией.


Рейтинг:
1

Greg Utas

Не видя остального вашего кода, я предполагаю, что firstnum и secondnum определяются как целые числа. Поэтому, когда secondnum > firstnum, результат усекается до 0.


Arnold Christian Tabada

Мне очень жаль, но я новичок в этом деле. Если я был занозой в заднице, то прошу прощения.

Greg Utas

В расширенном коде, который вы опубликовали, "while(true)" заканчивается на "}" перед "else if", поэтому я даже не вижу, как он будет успешно компилироваться.

Рейтинг:
1

Sandeep Mewara

Цитата:
System.out.println("результат: "+(firstnum/secondnum));

Это потому, что вы делите два целых числа, где числитель меньше знаменателя. При делимости целых чисел вы получите только частные.

5/7 => 0 как частное и 5 как остаток.
Цитата:
Это двоичный оператор, который используется для деления первого операнда(дивиденда) на второй операнд(делитель) и получения в результате частного.


Читайте о математических операциях здесь: http://tutorials.jenkov.com/java/math-operators-and-math-class.html#division[^]

Вам нужно прочитать основы на случай, если вы не знали об этом.