qq_Ezio 2021-08-16 14:16 采纳率: 100%
浏览 32
已结题

为什么这两种定义出来运行结果会不一样。。

只是将x,y,z定义在主方法里和定义在for循环里,为什么一个运行是空白一个运行正常

1.

for (x = 0;x <= 20;x++ ){
            for (y = 0; y <= 33; y++){
                for (z = 0; z <=100;z++ ){
                    if (x + y + 3*z == 100 && 5*x + 3*y + z == 100 ){
                        System.out.println("公鸡" + x +"个");
                        System.out.println("母鸡" + y +"个" );
                        System.out.println("小鸡" + 3*z + "个");

运行结果

公鸡0个
母鸡25个
小鸡75个
公鸡4个
母鸡18个
小鸡78个
公鸡8个
母鸡11个
小鸡81个
公鸡12个
母鸡4个
小鸡84个

Process finished with exit code 0


2.

int x = 0 ;
        int y = 0;
        int z = 0;
        for (;x <= 20;x++ ){
            for (; y <= 33; y++){
                for (; z <=100;z++ ){
                    if (x + y + 3*z == 100 && 5*x + 3*y + z == 100 ){
                        System.out.println("公鸡" + x +"个");
                        System.out.println("母鸡" + y +"个" );
                        System.out.println("小鸡" + 3*z + "个");

运行为空白

  • 写回答

2条回答 默认 最新

  • 八云黧 2021-08-16 14:19
    关注

    1和2不等价,因为内层循环每次重新运行时都会初始化对应的变量为0
    1和下面的代码等价

            int x = 0;
            int y = 0;
            int z = 0;
            for (; x <= 20; x++) {
                y=0;
                for (; y <= 33; y++) {
                    z=0;
                    for (; z <= 100; z++) {
                        if (x + y + 3 * z == 100 && 5 * x + 3 * y + z == 100) {
                            System.out.println("公鸡" + x + "个");
                            System.out.println("母鸡" + y + "个");
                            System.out.println("小鸡" + 3 * z + "个");
                        }
                    }
                }
            }
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 8月24日
  • 已采纳回答 8月16日
  • 创建了问题 8月16日

悬赏问题

  • ¥15 关于stm32hal库驱动ft6336触摸屏遇到的问题
  • ¥15 需要手写数字信号处理Dsp三个简单题 不用太复杂
  • ¥15 数字信号处理考试111
  • ¥100 关于#audobe audition#的问题,如何解决?
  • ¥15 allegro17.2生成bom表是空白的
  • ¥15 请问一下怎么打通CAN通讯
  • ¥20 如何在 rocky9.4 部署 CDH6.3.2?
  • ¥35 navicat将excel中的数据导入mysql出错
  • ¥15 rt-thread线程切换的问题
  • ¥15 高通uboot 打印ubi init err 22