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

在第一步骤,打算用循环语句来判断输入的数字,但不知道哪里出错了.求各位帮帮忙看一下.我的思路是:通过输入数字0或1来代表"否"和"是",①判断输入的是否是0或1,②真:继续判断是0还是1,给出具体的应答;否,重新输入.

package com.imooc;

import java.util.Scanner;


public class Initial {

    public static  int inPut1;

    

public static void main(String[] args) {

// TODO Auto-generated method stub

        

Scanner input1 = new Scanner(System.in);//获取用户输入的指令

        System.out.println("您是否想要租车? ");

        System.out.println("是,请回复1;否,请回复0");

        inPut1 = input1.nextInt();

         

            if ((inPut1 != 0 )|| (inPut1 != 1)){

            do {

           Scanner input1a = new Scanner(System.in);

           System.out.println("请输入数字1或0.1表示'是';0表示'否'.");

           inPut1= input1a.nextInt();

           //continue;

            }while ( (inPut1 != 0) ||(inPut1 != 1));

            }else{

            switch (inPut1){

           case 0:

               System.out.println("退出 答答打车 程序");

           case 1:

               System.out.println("您可租车的类型与及其价格表,如下:");

               

                 }

           

            }

            

            }

         

}

        //调用各类汽车的型号价目表


正在回答

2 回答

while中的条件错了,||逻辑运算符的规则是有任一条件为true,则返回true。所以你写成这样,除非这世上有一个数可以同时等于0和1才能使这个条件为false从而退出循环

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

ziom

改成 while (!(inPut1 == 0)||(inPut1 == 1))就好了
2016-08-20 回复 有任何疑惑可以回复我~
#2

梁梁梁世豪 提问者

谢谢您!发现自己做的过程中想当然了.
2016-08-20 回复 有任何疑惑可以回复我~
#3

梁梁梁世豪 提问者

呼~~终于写完了.. 我写的时候,发现写成 while (!((inPut == 0) ^ (inPut == 1))) 也是可以的. 预期效果:如果输入的是0或1,则退出循环.否则一直循环提示重新输入0或1.
2016-08-23 回复 有任何疑惑可以回复我~

补充一下. 我做过debug测试,问题是在循环语句哪里,不论我输入什么数字,都跳不出循环.主要想问一下为什么会出现这样的情况.

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

举报

0/150
提交
取消

在第一步骤,打算用循环语句来判断输入的数字,但不知道哪里出错了.求各位帮帮忙看一下.我的思路是:通过输入数字0或1来代表"否"和"是",①判断输入的是否是0或1,②真:继续判断是0还是1,给出具体的应答;否,重新输入.

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