为了账号安全,请及时绑定邮箱和手机立即绑定

求大牛看看我这个代码应该怎么填写

package com.hei;

import java.util.*;

public class lianxi {

 public static void main(String[] args) {
  // 提醒用户输入计算方法
  Scanner input = new Scanner(System.in);
  System.out.println("请输入第一个数:");
  double a = input.nextDouble();
  System.out.println("请输入第二个数:");
  double b = input.nextDouble();
  while (true) {
   System.out.println("******************");
   System.out.println("1.输出两个数的和:");
   System.out.println("2.输出两个数的差:");
   System.out.println("3.输出两个数的乘积:");
   System.out.println("4.输出两个数的商:");
   System.out.println("5.重新输入数字");
   System.out.println("6.退出.");
   // 定义变量c保存用户选择的计算方法
  int c = input.nextInt();
   switch (c) {
   case 1:
    double x = a + b;
    System.out.println("两个数的和:" + x);
    break;
   case 2:
    double x1 = a - b;
    System.out.println("两个数的差:" + x1);
    break;
   case 3:
    double x2 = a * b;
    System.out.println("两个数的乘积:" + x2);
    break;
   case 4:
    double x3 = a / b;
    System.out.println("两个数的商:" + x3);
    break;
   case 5:
    
    break;
   case 6:
    break;
   default:
    System.out.println("请确保输入范围在1~5之间");
   }
  }

 }

}

我的想法是在switch中的 case 5返回前面再次要用户输入变量a和b,一开始我的想法是定义一个方法但是这样a和b是局部变量,我在main方法中调用不到,想问下如何实现case 5可以返回再次输入变量a和b

正在回答

5 回答

既然你已经定义了值为true的循环,那可以将

System.out.println("请输入第一个数:");
  double a = input.nextDouble();
  System.out.println("请输入第二个数:");
  double b = input.nextDouble();

放到while循环里,每次用户计算完毕或者选择重新输入后都会跳转回输入数字栏

0 回复 有任何疑惑可以回复我~
#1

qq_Kindergarten_0 提问者

非常感谢!
2018-06-03 回复 有任何疑惑可以回复我~
public class Print{
    public static void main(String[] args) {
       Scanner input=new Scanner(System.in);
       for(int i = 0; i <4 ;) {
         System.out.print("请输入1或者2:");
         int a=input.nextInt();
         i++;
         if (a>2){
         System.out.println("您的输入有误,请重新输入!");
         }else{
           i++;
         }   
        }
    }
}

希望对你有帮助!!

0 回复 有任何疑惑可以回复我~
import java.util.Scanner;

public class Test {
    public static void main(String[] args) {
        math();//抽取方法
    }
    public static void math(){
        // 提醒用户输入计算方法
        Scanner input = new Scanner(System.in);
        System.out.println("请输入第一个数:");
        double a = input.nextDouble();
        System.out.println("请输入第二个数:");
        double b = input.nextDouble();
        while (true) {
            System.out.println("******************");
            System.out.println("1.输出两个数的和:");
            System.out.println("2.输出两个数的差:");
            System.out.println("3.输出两个数的乘积:");
            System.out.println("4.输出两个数的商:");
            System.out.println("5.重新输入数字");
            System.out.println("6.退出.");
            // 定义变量c保存用户选择的计算方法
            int c = input.nextInt();
            switch (c) {
                case 1:
                    double x = a + b;
                    System.out.println("两个数的和:" + x);
                    break;
                case 2:
                    double x1 = a - b;
                    System.out.println("两个数的差:" + x1);
                    break;
                case 3:
                    double x2 = a * b;
                    System.out.println("两个数的乘积:" + x2);
                    break;
                case 4:
                    double x3 = a / b;
                    System.out.println("两个数的商:" + x3);
                    break;
                case 5:
                    math();//再次执行该方法
                    break;
                case 6:
                    System.out.println("退出成功");
                    return;//完全停止
                default:
                    System.out.println("请确保输入范围在1~5之间");
            }
        }
    }
}

希望对你有帮助

1 回复 有任何疑惑可以回复我~
#1

qq_Kindergarten_0 提问者

谢谢!
2018-06-03 回复 有任何疑惑可以回复我~

可以把main方法里边的代码 抽成一个方法,然后case5 就调这个方法

0 回复 有任何疑惑可以回复我~
#1

情不知所起丶

main(){ math(); } //抽出来的方法 math(){ //循环就可以去掉了 switch(num){ ... case 5: math(); ... } }
2018-05-28 回复 有任何疑惑可以回复我~
#2

qq_Kindergarten_0 提问者

已经了解了谢谢
2018-06-03 回复 有任何疑惑可以回复我~

你可以直接把整个main的代码写到  while(){代码}  里去,怎么样跳出随你自己写,这里我觉得你最好写一个方法,把这些代码放到方法里去,然后在main里调用方法,,不过是不是你还没学到这里,,哈哈

0 回复 有任何疑惑可以回复我~
#1

qq_Kindergarten_0 提问者

不是,是因为练习的少,老是想不起知识点该怎么运用.
2018-06-03 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

求大牛看看我这个代码应该怎么填写

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信