读取两个(不同)数字(浮点数)的字符串.输出更大的数字.不要使用“如果”



这个问题需要使用异常处理(try-catch)来完成。

我尝试将字符串分成 4 个不同的整数。两个用于整数部分,另外两个用于小数部分。

但我仍然被困在如何生成错误。

对于 2 个整数,我的答案是,

import java.lang.*;
import java.util.*;
class s7
{
public static void main(String args[])
{
int a,b,c;
String str;
Scanner sc=new Scanner(System.in);
str=sc.nextLine();
StringTokenizer st=new StringTokenizer(str," ");
a=Integer.parseInt(st.nextToken());
b=Integer.parseInt(st.nextToken());
c=a/b;
 try
  {
  int d=20/c;
  System.out.println("Bigger: "+a);
  }
 catch(Exception e)
  {
  System.out.println("Bigger: "+b);
  }
 }
}

假设数字不能为负数,您可以尝试像 x/y 一样将一个除以另一个。

  • 如果x<y,您将获得小于 1 的数字,例如0.xxxxxx
  • 如果x>=y,您将获得大于或等于 1 的数字,例如 1.xxxx2.xxxx 等。

现在要摆脱小数部分,我们需要做的就是将这样的数字转换为int(我假设数字不是那么大)。这样,对于 x=y',您将获得更大的价值。

所以现在的问题是测试(int)x/y是否0

要测试它,您可以尝试使用数组和IndexOutOfBoundsException。只需创建一个可以包含一个元素new SomeType[1]数组,并尝试使用类似 array[(int)x/y] 的结果访问该元素。如果您能够做到这一点,则打印y(因为结果为 0,所以x<y的情况),如果您将捕获 IOB 异常打印x

相关内容

最新更新