黑马程序员技术交流社区

标题: 这个程序哪里有问题 [打印本页]

作者: caicc    时间: 2016-6-30 19:20
标题: 这个程序哪里有问题
  1. import java.util.Scanner;
  2. class Practice4 {
  3.         public static void main(String[] args) {
  4.                 Scanner sc = new Scanner(System.in);
  5.                 System.out.println("请输入一个整数");
  6.                 while (true){
  7.                         int x = sc.nextInt();                                //获取录入值赋值给x
  8.                         if (x % 2 == 0){                                                               
  9.                                 System.out.println(x + "是一个偶数");
  10.                                 break;
  11.                         }
  12.                         else if (x == 0){
  13.                                 System.out.println(x + "是一个偶数");
  14.                                 break;
  15.                         }       
  16.                         else {
  17.                                 System.out.println(x + "是一个奇数");
  18.                         }
  19.                 }
  20.         }
  21. }
复制代码

作者: caicc    时间: 2016-6-30 19:23
需要能一直判断输入的数是奇数还是偶数,遇到0则跳出.现在的问题是遇到0不会跳出
作者: 安生安徒生    时间: 2016-6-30 19:24
坐等大神回复{:2_30:}{:2_30:}{:2_30:}{:2_30:}
作者: yw201605    时间: 2016-6-30 19:26
  抢个沙发,等大神回复!

作者: syinys7    时间: 2016-6-30 19:44
caicc 发表于 2016-6-30 19:23
需要能一直判断输入的数是奇数还是偶数,遇到0则跳出.现在的问题是遇到0不会跳出 ...

public static void main(String[] args) {
                Scanner sc = new Scanner(System.in);
                System.out.println("请输入一个整数");
                while (true) {
                        int x = sc.nextInt(); // 获取录入值赋值给x
                        if (x % 2 == 1) {
                                System.out.println(x + "是一个奇数");

                        } else if (x == 0) {
                                System.out.println(x + "是一个偶数");
                                break;
                        }else
                        {
                                System.out.println(x + "是一个偶数");
                        }
                }
        }
作者: syso信任    时间: 2016-6-30 19:50
楼上正解.
作者: 他的好    时间: 2016-6-30 20:00
import java.util.Scanner;

class Practice4 {

        public static void main(String[] args) {

                Scanner sc = new Scanner(System.in);

                System.out.println("请输入一个整数");

                while (true){

                        int x = sc.nextInt();                                //获取录入值赋值给x

                        if ((x % 2 == 0)&& x!=0){                                                               
                                System.out.println(x + "是一个偶数");


                        }

                        else if (x == 0){

                                System.out.println(x + "是一个偶数");

                                break;

                        }        
                        else {

                                System.out.println(x + "是一个奇数");

                        }

                }

        }

}

作者: syinys7    时间: 2016-6-30 20:06
x=0的时候;x%2==0的条件为true,知道了这个就很好写了.方法有很多
作者: 王旭VH    时间: 2016-6-30 21:24
你在x ==0下面加一个System.exit(); 不可以么
作者: zhangwenjin    时间: 2016-6-30 21:37
你这个无限循环啊 ,永远都没有跳出
作者: rentianyn    时间: 2016-6-30 22:26
输入0会跳出啊
作者: feng19900123    时间: 2016-6-30 22:43
  1. import java.util.Scanner;
  2. class Practice4 {
  3.         public static void main(String[] args) {
  4.                 Scanner sc = new Scanner(System.in);
  5.                 System.out.println("请输入一个整数");
  6.                 while (true){
  7.                         int x = sc.nextInt();                                //获取录入值赋值给x
  8.                         if (x % 2 == 0 && x != 0){                                                               
  9.                                 System.out.println(x + "是一个偶数");
  10.                                 //break;
  11.                         }
  12.                         else if (x == 0){
  13.                                 System.out.println(x + "是一个偶数");
  14.                                 break;
  15.                         }        
  16.                         else {
  17.                                 System.out.println(x + "是一个奇数");
  18.                         }
  19.                 }
  20.         }
  21. }
复制代码

作者: 糊图    时间: 2016-7-1 00:00
import java.util.Scanner;
class FUXI9 {
        public static void main(String[] args) {
                Scanner sc = new Scanner(System.in);
                System.out.println("请输入一个整数");
                while (true){
                        int x = sc.nextInt();                                //获取录入值赋值给x
                        if (x == 0){                                                               
                                System.out.println(x + "是一个偶数");
                                break;
                        }
                        else if (x % 2 == 0){
                                System.out.println(x + "是一个偶数");
                        }        
                        else {
                                System.out.println(x + "是一个奇数");
                        }
                }
        }
}

在你的基础上改了一下,好像就可以了,你的问题是,只要是偶数就会跳出循环,你的目的是让程序在录入0的时候跳出,在录入其他数的时候判断是奇数还是偶数,0也是偶数,那么我把它放到第一个判断的语句,录入每个数都会先判断它是否成立,再一个就是你不能在录入偶数是写break语句,其他人的也是可以的,总的来说有很多方法处理
作者: itismyhao    时间: 2016-7-1 04:03
每次循环都要输出“请输入一个数”以及得到用户输入的值之后在进行判断。
再次基础上,因为你所需要跳出循环的条件是如果是0的时候才跳出,所以只需要在
else if (x == 0){
                                System.out.println(x + "是一个偶数");
                                break;
}
这里面有break就行了。
作者: wang87296521    时间: 2016-7-1 08:21
西吧滚滚滚滚滚滚滚滚滚滚滚滚滚滚滚滚滚滚滚滚滚滚滚
作者: guowei    时间: 2016-7-1 08:41
哈哈哈哈哈````````````````````````




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2