# 我的第一个java训练作业

我的第一个java训练作业

——进制转换器
题目:十进制向任一用户输入的N进制转换的程序。例如,提示用户输入某个进制类型,若用户输入3则表示采用3进制;随后再提示用户输入某个十进制数,假设为6;则程序返回6的三进制表示形式,即20;若输入进制为4,则6的四进制表示应返回12,以此类推。

一、遇到的一些问题

思路很简单就是做一个循环。就是输入的数字要先对N取余,第一个取余得到的就是对应最右边的位次,再以此向左;取余之后相除,除后取余得到第二位数字以后向后类推
由于第一次写java代码,以前的编程只学过C和C#还忘了很多,所以记录一下最基础的问题
1.在需要从键盘录入
Scanner XXX = new Scanner(System.in);
在调用录入键盘的输入前要写的一句话,在这个里面我的理解是XXX就是一个对象,是你自己起的名字,这句话是创建 Scanner 对象的基本语法。
一个相关的菜鸟教程
2. 为了使得程序增加用户友好性,我运用了do while循环,在最后嵌套时要注意将do while 的判定条件中的未知变量的定义要放在这个循环的外部,不然会报错。但是不知道为什么我的代码的do while 循环不太对,没有能够成功循环,如果有朋友能够指出问题感激不尽~
3. 在程序中在程序中定义数组的方法:
4.

int size = 10;//定义数组的长度是10
int[] numList = new int[size];//这里是对于数组的定义,new是新建一个数组

4.在输出数组时,一开始选择的是正序输出,会导致顺序正好是反的,于是我将循环改成

for(int a=0;a<numList.length;a++)
{System.out.print(numList[10-a]);}

发现这样做程序报错了,原因是一共我为数组设置了10位,但是起始是从0开始,所以最后一位应该是9,也就是说正确的应该是:

for(int a=0;a<numList.length;a++)
{System.out.print(numList[9-a]);}

于是程序正确运行了

二、代码奉上

package mathcalculation;
//胡竞文's homework 2
import java.util.Scanner;//这句话是用来调用Scanner类的
public class mathcalculation {
	public static void main(String[] args)//主函数的定义
	{
		
		String dialogresult="a";
		do{
		Scanner calculation = new Scanner(System.in);
		System.out.println("欢迎来到通信本1902胡竞文的实验2");
		System.out.println("请输入数字N表示你要将十进制数转为N进制数:");	
		if (calculation.hasNextInt()) 
		{
         int transfernum = calculation.nextInt();
		 //定义transfernum为数字N。即N进制
         System.out.println("请输入要转换的数字inputnum");
         int inputnum=calculation.nextInt();//定义inputnum为输入要计算的数
         int size = 10;//定义数组的长度是10
         int[] numList = new int[size];//这里是对于数组的定义,new是新建一个数组
         int i=0;
         while(inputnum!=0)
         //务必记住这里的思路是输入的数字要先对N取余,第一个取余得到的就是对应最右边的位次,再以此向左;取余之后相除,除后取余得到第二位数字以后向后类推  
         {
          	numList[i]=inputnum%transfernum;
        	inputnum=inputnum/transfernum;
        	i++;
         }
         System.out.println("对应的十位二进制数字是");
         for(int a=0;a<numList.length;a++)
         {System.out.print(numList[9-a]);}//输出得到的装有二进制01的数组  
         System.out.println();
		}
		else System.out.println("输入的不是整请重新编译程序重新输入!");
        System.out.println("是否要继续程序,输入Y表示继续,输入其他符号退出程序");
        dialogresult=calculation.next();/为什么这里用nextString就会报错
	}while(dialogresult=="Y");/为什么do while 语句在这里不能循环
    }
}

三、实验截图

在这里插入图片描述
记录就到这里啦~拜拜

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值