当前位置: 首页 > 知识库问答 >
问题:

条件句与循环练习

路和悌
2023-03-14

我被一个练习卡住了,我正在做的练习是“写一个程序,确定并打印从键盘上读取的整数值中的奇数、偶数和零位数。我做错了什么,我如何纠正我的错误?

import java.util.Scanner;

public class OddEven {
   public static void main(String[] args){
   Scanner scan = new Scanner(System.in);

   int odd=0;
   int even=0;
   int zero=0;
   int num=0;
   int value;

   System.out.println("Enter a value: ");
   value=scan.nextInt();
   if (value%2==0)
       even=even+1;
   else
       odd=odd+1;
   System.out.println("even = "+ even);
   System.out.println("odd = "+odd);
   System.out.println("zero = "+zero);
   }
}

共有2个答案

夏侯楷
2023-03-14

条件语句

if (value%2==0)
    even=even+1;
else
    odd=odd+1;

不计算奇数或偶数。它只是确定输入的值(整个值)是奇数还是偶数。

由于这显然是一个家庭作业问题,我只给出一些提示:

  1. 你必须循环所有数字。在十进制系统中,有一种简单的整数方法,可以将最后一个数字和剩余的数字作为一个新的但较小的整数值
  2. 一旦你有了一个(最后一个)数字,你就可以检查它是奇数、偶数还是零
  3. 当步骤1的剩余值为0时,循环结束。一些警告:必须在开始时进行特殊检查,因为原始值可能已经为0

看看其他已经为你提供了一些代码的答案。但作为初学者,你真的应该首先尝试自己编写代码。

梁承恩
2023-03-14

您必须一次检查每个数字:

int odd, even, zero, value;
value = scan.nextInt();

while(value > 0) {
    int digit = value%10; //isolates only the last digit
    if(digit==0)zero++;
    else if(digit%2==0)even++;
    else odd++;
    value /= 10; //removes the last digit
}
 类似资料:
  • 通常都听到别人说,计算机很牛逼,很聪明,其实计算机一点都不聪明,光是你要跟他沟通,都会气 shi 你,聪明的是在写程序的你。 写程序就是跟计算机沟通,告诉它要做什么。 竟然是这样,那么肯定缺少不了一些沟通逻辑。比如你要告诉计算机在什么情况下做什么?或者在哪个时间点做什么? 这都需要用到逻辑判断。这一章节,主要就是说这个。 目录

  • 控制切换一个元素是否显示也相当简单: <div id="app-3"> <p v-if="seen">现在你看到我了</p> </div> var app3 = new Vue({ el: '#app-3', data: { seen: true } }) 现在你看到我了 继续在控制台输入app3.seen = false,你会发现之前显示的消息消失了。 这个例子演示

  • 3.2.1 无循环变量的DO构造 a) 一般形式 这种DO构造形式非常简单,一般形式为: [构造名:] DO 块 END DO 不带循环控制变量的DO构造控制机制为:进入DO构造体后,从DO语句下面第一句执行起顺次执行到END DO前的最后一句,再返上来从DO语句下面第一句执行起,重复执行整个DO块。如此反复执行DO块,其间如遇到EXIT语句,就停止执行DO块,退出循环,转向执行END DO下面的

  • 本文向大家介绍高性能JavaScript循环语句和条件语句,包括了高性能JavaScript循环语句和条件语句的使用技巧和注意事项,需要的朋友参考一下 一、循环语句 众所周知,常用的循环语句有for、while、do-while以及for-in,forEach。除了for-in和forEach性能略低外,平时我们对前三者的选择更多的是基于需求而非性能考虑,今天我们就对它们各自的性能做个测试,告诉我

  • 1、打印九九乘法表 # -*- coding: UTF-8 -*- # 打印九九乘法表 for i in range(1, 10): for j in range(1, i+1): # 打印语句中,大括号及其里面的字符 (称作格式化字段) 将会被 .format() 中的参数替换,注意有个点的 print('{}x{}={}\t'.

  • let arr = ['test1','test2'] let obj = { test0:'xxx'} 想通过循环arr,if判断时得到以下结果,即把数组中的元素当做obj的key加到if判断中 if( obj.test0 && obj.test1 && obj.test2){ }