猿问

为什么我的哨兵值不起作用,我可以输入无限的整数但什么也得不到?

所以我正在尝试编写一个标记值为 0 的代码。它提示用户输入数字,并找到所有输入数字的正负和总和。我不明白为什么在我输入标记值 0 后它不打印任何东西。我的 while 循环有问题吗?谢谢你 !


我尝试了很多东西,但仍然看不到原因。


package Csc220Study;

import java.util.Scanner;

public class S51 {

public static void main(String [] args){

    System.out.println(" enter an integer , the input ends if it is 0:");

    Scanner input = new Scanner(System.in);




    int sum =0;

    int positives=0;

    int negatives=0;

    int count=0;


    int x = input.nextInt();

    while(x!=0){

        sum=+x;

        if(x<0){

            negatives++;

        }else if(x>0){

            positives++;

        }

        count++;

    }



        System.out.println("the sum is :"+sum);

        System.out.println("positive number here :"+positives);

        System.out.println("negative numbers are :"+negatives);


慕盖茨4494581
浏览 100回答 1
1回答

烙印99

将您的 while 循环部分更改为:int x = input.nextInt();while(x!=0){&nbsp; &nbsp; sum+=x;&nbsp; &nbsp; if(x<0){&nbsp; &nbsp; &nbsp; &nbsp; negatives++;&nbsp; &nbsp; }else if(x>0){&nbsp; &nbsp; &nbsp; &nbsp; positives++;&nbsp; &nbsp; }&nbsp; &nbsp; count++;&nbsp; &nbsp; x = input.nextInt();}当您输入一个非零整数时,它处于无限循环中,因为 x 的值永远不会改变。
随时随地看视频慕课网APP

相关分类

Java
我要回答