Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 负数使用for循环结束程序?_Java_Loops_For Loop - Fatal编程技术网

Java 负数使用for循环结束程序?

Java 负数使用for循环结束程序?,java,loops,for-loop,Java,Loops,For Loop,大家好,我不太明白如何使用for循环,因为我们今天才开始学习它们。我必须为我们之前制作的程序添加一个for循环。它必须不断询问狗的年龄,直到用户输入一个负数。以下是我所拥有的: import java.util.Scanner; public class DogYears { public static void main(String [] args) { Scanner scan = new Scanner(System.in); Syste

大家好,我不太明白如何使用for循环,因为我们今天才开始学习它们。我必须为我们之前制作的程序添加一个for循环。它必须不断询问狗的年龄,直到用户输入一个负数。以下是我所拥有的:

import java.util.Scanner;

public class DogYears
{
    public static void main(String [] args)
    {
        Scanner scan = new Scanner(System.in);
        System.out.print("Enter your dog's age in human years: ");
        int age = scan.nextInt();

        int dogAge = age * 7;
        System.out.println("Your dog is " + age + " in human years and "
            + dogAge + " in dog years!");

        if (dogAge >= 150)
            System.out.println("Likely story");
        else if (dogAge >= 80 && dogAge < 150)
            System.out.println("Hello grand-dog");
        else if (dogAge >= 40 && dogAge < 80)
            System.out.println("Boring!");
        else if (dogAge >= 20 && dogAge < 40)
            System.out.println("Get a job!");
        else if (dogAge < 20)
            System.out.println("Just a pup!");
    }
}
import java.util.Scanner;
公共课教学年
{
公共静态void main(字符串[]args)
{
扫描仪扫描=新扫描仪(System.in);
System.out.print(“输入您的狗的年龄,以人的年龄为单位:”);
int age=scan.nextInt();
int dogAge=年龄*7;
System.out.println(“你的狗在人类年龄中是“+age+”,并且”
+狗龄+“在狗年!”;
如果(狗龄>=150)
System.out.println(“可能的故事”);
否则如果(狗龄>=80和狗龄<150)
System.out.println(“你好,大狗”);
否则如果(狗龄>=40和狗龄<80)
System.out.println(“无聊!”);
否则如果(狗龄>=20和狗龄<40)
System.out.println(“找份工作!”);
否则如果(狗龄<20)
System.out.println(“只是一只小狗!”);
}
}
带有For循环:

   for(;age>=0;){
          int dogAge = age * 7;
          System.out.println("Your dog is "+age+" in human years and "+dogAge+" in dog years!");


      if(dogAge>=150)System.out.println("Likely story");
      else if (dogAge>=80 && dogAge<150) System.out.println("Hello grand-dog");
      else if(dogAge>=40 && dogAge<80)System.out.println("Boring!");
      else if(dogAge>=20 && dogAge<40)System.out.println("Get a job!");
      else if(dogAge<20)System.out.println("Just a pup!");
      System.out.print("Enter your dog's age in human years: ");
      age = scan.nextInt();

    }
您不必初始化,也不必递增或递减—只需使用条件部分即可

为此,您可以使用for循环

public static void main(String [] args)
{
    Scanner scan = new Scanner(System.in);
    int age = 1;
    System.out.print("Enter your dog's age in human years: (or a negative number to exit)");
    for(;age>=0;){
       age = scan.nextInt();
       int dogAge = age * 7;
       System.out.println("Your dog is "+age+" in human years and "+dogAge+" in dog years!");
       if(dogAge>=150)System.out.println("Likely story");
       else if (dogAge>=80 && dogAge<150) System.out.println("Hello grand-dog");
       else if(dogAge>=40 && dogAge<80)System.out.println("Boring!");
       else if(dogAge>=20 && dogAge<40)System.out.println("Get a job!");
       else if(dogAge<20)System.out.println("Just a pup!");
    }
}
然而,您实际上并不需要递增器、布尔值甚至变量

(;){/*…*/}的
for(;;){/*…*/}
是完全有效的代码,将循环直到某个东西发生
中断退出

因此,我们利用了这一事实,实际上只在For循环初始化中使用布尔值

你甚至可以这样写:

for(;age>=0;){/*...*/}

只要变量
age
在for循环之前初始化。

只需这样做。我知道你已经知道这段代码中发生了什么,这里的for循环就像一个while循环。如果有,也试着用大括号。这是一个很好的代码实践

class DogYears {
  public static void main(String[] args) {
    Scanner scan = new Scanner(System.in);
    System.out.print("Enter your dog's age in human years: ");
    int age = scan.nextInt();

    for (; age > 0;) {
        int dogAge = age * 7;
        System.out.println("Your dog is " + age + " in human years and " + dogAge + " in dog years!");
        System.out.println("----------------------------");
        if (dogAge >= 150) {
            System.out.println("Likely story");
        } else if (dogAge >= 80 && dogAge < 150) {
            System.out.println("Hello grand-dog");
        } else if (dogAge >= 40 && dogAge < 80) {
            System.out.println("Boring!");
        } else if (dogAge >= 20 && dogAge < 40) {
            System.out.println("Get a job!");
        } else if (dogAge < 20) {
            System.out.println("Just a pup!");
        }
        System.out.println("----------------------------");
        System.out.print("Enter your dog's age in human years: ");
        age = scan.nextInt();

    }
  }
}
课程年数{
公共静态void main(字符串[]args){
扫描仪扫描=新扫描仪(System.in);
System.out.print(“输入您的狗的年龄,以人的年龄为单位:”);
int age=scan.nextInt();
对于(;年龄>0;){
int dogAge=年龄*7;
System.out.println(“你的狗在人的年龄里是“+age+”,在狗的年龄里是“+dogAge+”);
System.out.println(“-------------------------------”;
如果(狗龄>=150){
System.out.println(“可能的故事”);
}否则如果(狗龄>=80和狗龄<150){
System.out.println(“你好,大狗”);
}否则如果(狗龄>=40和狗龄<80){
System.out.println(“无聊!”);
}否则如果(狗龄>=20和狗龄<40){
System.out.println(“找份工作!”);
}否则如果(狗龄<20){
System.out.println(“只是一只小狗!”);
}
System.out.println(“-------------------------------”;
System.out.print(“输入您的狗的年龄,以人的年龄为单位:”);
age=scan.nextInt();
}
}
}

希望这有帮助

他告诉我们,我们必须使用“for”循环,我已经尝试了几乎所有我知道的方法,但仍然没有成功stuck@user4068770谢谢你,这帮了大忙!但是我改变了for循环,所以每个否定的答案都会结束程序。很高兴再次感谢你。将for循环更改为(;age>0;)
。那你就没事了。谢谢,这是真的,但他希望我们熟悉for循环。因此,如果输入了
0
,表示狗还没有出生。这不可能发生。这个for循环语句是编译的error@codebot您得到的编译错误是什么?如果输入了
0
,则表示未输入负值,循环应继续。我想这是按照说明进行的。@user4068770我为循环添加了一个
解释,以及为什么这样做。如果你需要更多的解释,请告诉我。谢谢你的帮助。我将尝试在我的其他程序中执行另一个for循环。
for(;age>=0;){/*...*/}
class DogYears {
  public static void main(String[] args) {
    Scanner scan = new Scanner(System.in);
    System.out.print("Enter your dog's age in human years: ");
    int age = scan.nextInt();

    for (; age > 0;) {
        int dogAge = age * 7;
        System.out.println("Your dog is " + age + " in human years and " + dogAge + " in dog years!");
        System.out.println("----------------------------");
        if (dogAge >= 150) {
            System.out.println("Likely story");
        } else if (dogAge >= 80 && dogAge < 150) {
            System.out.println("Hello grand-dog");
        } else if (dogAge >= 40 && dogAge < 80) {
            System.out.println("Boring!");
        } else if (dogAge >= 20 && dogAge < 40) {
            System.out.println("Get a job!");
        } else if (dogAge < 20) {
            System.out.println("Just a pup!");
        }
        System.out.println("----------------------------");
        System.out.print("Enter your dog's age in human years: ");
        age = scan.nextInt();

    }
  }
}