我如何更正程序以使其正确运行?

时间:2015-02-17 06:13:17

标签: java

这个程序应该有一个“while”循环,它会重复询问一个数字,直到给出一个可被6或17整除的数字。发生这种情况时,程序应显示读取的数字总数,这些数字不能被6或17整除。

import java.util.Scanner;
public class DivisibleBy6or17 {

    public static void main(String[] args) {
        Scanner kbd = new Scanner (System.in);
        System.out.print("Enter Value : ");
        int nbr = kbd.nextInt();
        int count = 0;
        while ((nbr % 7 ==0 ) && (nbr % 16 == 0)){

            count++;
            System.out.print("Enter Value: ");
            nbr = kbd.nextInt();
        }

        System.out.println("Numbers read : " + count);


    }

}

5 个答案:

答案 0 :(得分:0)

尝试

  while (!((nbr % 7 ==0 ) && (nbr % 16 == 0))){

你想做的却是假的

答案 1 :(得分:0)

条件错误,它应该是while循环中的操作数。

import java.util.Scanner;
public class DivisibleBy6or17 {

    public static void main(String[] args) {
        Scanner kbd = new Scanner (System.in);
        System.out.print("Enter Value : ");
        int nbr = kbd.nextInt();
        int count = 0;
        while (!((nbr % 17 == 0 ) || (nbr % 6 == 0))){

          count++;
          System.out.print("Enter Value: ");
          nbr = kbd.nextInt();
        }

        System.out.println("Numbers read : " + count);


    }
}

答案 2 :(得分:0)

尝试使用或(||)代替和(&&)

答案 3 :(得分:0)

更改

while ((nbr % 7 ==0 ) && (nbr % 16 == 0)){

            count++;
            System.out.print("Enter Value: ");
            nbr = kbd.nextInt();
        }

 /* while nbr **isn't** divisible by 7 or 16 */
 while (! ((nbr % 7 == 0 ) || (nbr % 16 == 0)) ){

                count++;
                System.out.print("Enter Value: ");
                nbr = kbd.nextInt();
            }

答案 4 :(得分:0)

试试这个

不确定数字是否正确,您提出的问题是提及与代码不同的数字。我已经使用了代码中的那些。

import java.util.Scanner;

public class DivisibleBy6or17 {

    public static void main(String[] args) {
        Scanner kbd = new Scanner (System.in);
        int count = 0;

        //loop forever
        while ( true ) {

            //prompt
            System.out.print("Enter Value : ");         
            int nbr = kbd.nextInt();

            //if number is divisible 
            if ( nbr % 7 == 0 || nbr % 16 == 0 ) {
                 //leave loop
                 break;             
            } else {
                //add to count
                count++;
            }
        }

        System.out.println("Numbers read : " + count);
    }
}