当前位置: 首页 > 知识库问答 >
问题:

使用while循环在java中查找整数的二进制等价项

许亦
2023-03-14

我是JAVA的新手。我一直在写代码,在java中寻找整数的等效二进制数。我写了下面的代码,它没有抛出任何错误,但它没有打印无效输入。但它正在打印给定整数值的有效二进制数。有人能建议我哪里做错了,什么做错了吗?以及我应该如何获得正确的输入。

import java.util.Scanner;

public class Main {

    public static void main(String[] args) {

        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        if (!(n >= 0) && n > 999) {
            System.out.println("Invalid Input");
        } else {
            while (n > 1) {
                if (n <= 999) {
                    System.out.println(Integer.toBinaryString(n));
                    break;
                }
            }


        }
    }
}

共有2个答案

陆浩博
2023-03-14

你为什么要使用循环呢?你只是增加了不必要的复杂性。您的代码可以被重新写入:

if (n >= 0 && n < 1000) {
   System.out.println(Integer.toBinaryString(n));
   return;
}
    
System.out.println("Invalid Input");
缪风史
2023-03-14

更改代码

if (!(n >= 0) || n > 999) {

或者更好的是,不带否定地表达条件:

if (n < 0 || n > 999) { 

积极的条件,即“a是b”,更容易阅读。

 类似资料:
  • 我试着解决这个数组列表问题,但没有成功 无论如何,在while循环中,我必须向ArrayList添加新的字符串项。 如果有一个重复的项目,应该有一个消息说重复的项目。 While循环将按单词结束中断

  • 本文向大家介绍python实现整数的二进制循环移位,包括了python实现整数的二进制循环移位的使用技巧和注意事项,需要的朋友参考一下 题目:如何在python中实现整数的二进制循环移位? 概述 在python中,可以通过<<以及>>运算符实现二进制的左移位以及右移位,然而并没有实现循环移位的运算符,暂时也找不到可以实现循环移位的函数,所以在本文中,主要介绍了如何使用字符的切片运算实现循环位移。

  • 我需要对while或do循环进行编码,以确定用户输入的数字是否在特定范围内(30

  • 我试图创建一个简短的基于文本的冒险游戏使用Java。 我是一个初学的程序员,所以我的方法可能不是最有效的,但我只使用了我从学校课程中学到的东西。 为什么会出现这个问题?我不知道我做错了什么。 谢了!

  • 我对编码完全陌生,正在使用Python作为一个学校项目开发一个基于文本的游戏。用户必须通过键入“北”、“东”、“南”或“西”进入房间。如果方向无效,则应弹出错误消息,提示用户输入新方向。如果用户键入退出,游戏应该结束。 这个项目有一百万个问题,因为我发现我在编码方面很糟糕,但我想弄清楚的是,如果出现提示,如何让我的程序退出游戏。这是我的代码(它不是完整的代码,只是我到目前为止所拥有的代码。我试图一

  • 问题内容: 当我在 while循环中 使用 try和catch 块时,我的程序有一个无限 循环 。 当我输入一个整数时,它运行良好并要求另一个输入,但是当我输入一个字符时,它将进入无穷循环。为什么会这样呢? 问题答案: 遇到无效输入时,由于nextInt()不使用无效令牌,因此程序进入无限循环。因此,导致该异常的任何令牌都将保留在该位置,并在下次尝试使用nextInt()时继续引发异常。 可以通过