大家好我不太懂得如何使用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!");
}
}
答案 0 :(得分:2)
你可以使用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!");
}
}
但是,它不是最好的语法。在这种情况下,while循环会更容易理解。
这可行的原因是for
循环语法。
for循环需要3件:
for循环初始化如下所示:
for(var;boolean;incrementer){
//...
}
但是,实际上并不需要增量器或布尔值甚至变量。
for(;;){/*...*/}
是完全有效的代码,会循环直到某个内容出现break;
。
因此,我们通过在For循环初始化中使用布尔值来利用这一事实。
你甚至可以把它写成:
for(;age>=0;){/*...*/}
只要在for循环之前初始化变量age
。
答案 1 :(得分:0)
使用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(INITIALIZATION; CONDITION; INCREMENT/DECREMENT){
// Code for the for loop's body
// goes here.
}
你不必初始化,你不必增加或减少只使用条件部分
答案 2 :(得分:0)
简单地这样做。我知道你已经知道在这段代码中发生了什么,这里的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();
}
}
}
希望这有帮助!