java 要求输入一个数字(例如2)如果无效要求重新输入,输入第二个数字(0-3)
关注:246 答案:4 mip版
解决时间 2021-01-18 07:14
提问者妳青噝侞烏
2021-01-17 08:54
java 要求输入一个数字(例如2)如果无效要求重新输入,输入第二个数字(0-3)例如3,显示结果2的零次幂 2的一次幂 2 的2次幂 2的3次幂
本人刚刚接触java编程 遇到测验 希望有人帮忙解答
最佳答案
二级知识专家伈係鯡亼
2021-01-17 10:22
import java.util.InputMismatchException;
import java.util.Scanner;
public class Test {
public static void main(String args[]) {
int base = getDigitFromInput(0, 3, true);
int exp = getDigitFromInput(0, 3, false);
for(int i = 0; i <= exp; i++){
System.out.println((int)Math.pow(base, i));
}
}
private static int getDigitFromInput(int min, int max, boolean isBase) {
int value = 0;
String baseOrExp = isBase? " base ": " exponent ";
boolean isValidInput = false;
do{
try {
System.out.println("Please input a digit as" + baseOrExp);
Scanner scanner = new Scanner(System.in);
value = scanner.nextInt();
if(!isBase){
if(value < 0 || value > 3){
System.out.println("Digit should be between 0 and 3 for exponent. Please input again!");
continue;
}
}
isValidInput = true;
} catch (InputMismatchException misMatchExp) {
System.out.println("Invalid data format for" + baseOrExp + ", Please input again!");
}
}while(!isValidInput);
return value;
}
}
----------------
Please input a digit as base
a
Invalid data format for base , Please input again!
Please input a digit as base
12.0
Invalid data format for base , Please input again!
Please input a digit as base
5
Please input a digit as exponent
cde
Invalid data format for exponent , Please input again!
Please input a digit as exponent
7
Digit should be between 0 and 3 for exponent. Please input again!
Please input a digit as exponent
3
1
5
25
125
全部回答
1楼孤者何懼
2021-01-17 14:27
package array;
import javax.swing.JOptionPane;
public class pow {
public static void main(String[] args){
String numString = JOptionPane.showInputDialog("Enter a number:");//对话框中输入数字,输入的格式为字符串类型
int num = Integer.parseInt(numString);//把字符串类型转换成整形
String countString = JOptionPane.showInputDialog("Enter the count:");//同上,输入要进行的幂次
int count = Integer.parseInt(countString);
test(num,count);//调用测试方法
}
public static void test(int m,int c){
int k = 0;
String output = " ";//输出的字符串
while(k <= c){
output += Math.pow(m, k) + " , " ;//依次把m的0-c次幂加到一个字符串上,方便输出
k ++;
}
JOptionPane.showMessageDialog(null, output);//在消息对话框中输出结果
}
}
2楼众里寻春风
2021-01-17 13:35
第一个import java.util.scanner;
public class zhuchengxu {
public static int java;
public static int c;
public static int db;
public static void main(string[] args){
scanner input=new scanner(system.in);
system.out.println("请输入你的java成绩:");
java=input.nextint();
system.out.println("请输入你的c#成绩:");
c=input.nextint();
system.out.println("请输入你的db成绩:");
db=input.nextint();
chengji cj=new chengji();
cj.zhanzong();
cj.zhanping();
}
}
第二个
public class chengji extends zhuchengxu{
@suppresswarnings("static-access")
public int zong(){
int sum=super.java+super.c+super.db;
return sum;
}
public void zhanzong(){
system.out.println("总成绩是"+zong());
}
@suppresswarnings("static-access")
public double avg(){
double avg=(super.java+super.c+super.db)/3;
return avg;
}
public void zhanping(){
system.out.println("平均成绩是"+avg());
}
}是第二个程序接收不了第一个程序里输入的值,只好用继承的概念了。
3楼淡似春风
2021-01-17 12:00
import java.util.Scanner;
public class Test {
public void test(){
Scanner input1 = new Scanner(System.in);//创建系统输入实例系统
int num1 = 0;
//用do while方法可以先赋给num1一个值再判断
do{
System.out.println("请输入第一个数(0-9):");
num1 = input1.nextInt();//获取控制台输入
}while(num1>9||num1<0);//逻辑判断输入是不是0-9,否则调回重输
System.out.println("请输入第二个数:");
int num2 = input1.nextInt();//控制台获取第二个数
//循环输出num2+1次,从0开始
for(int i=0;i<=num2;i++){
System.out.println(Math.pow(num1, i));//调用系统幂次方函数num1的i次方
}
}
public static void main(String[] args) {
Test t = new Test();
t.test();
}
}
我要举报
如以上问答内容为低俗/色情/暴力/不良/侵权的信息,可以点下面链接进行举报,我们会做出相应处理,感谢你的支持!
→点此我要举报以上信息!←
推荐资讯
大家都在看