我试图写一个条件语句,这样如果符合条件,那么字符串oranges ="是的请"。如果没有,那么应该说"不,谢谢"。我打算稍后在类似System.out.println的打印语句中使用字符串oranges(" y" +" m" +" d" +&#34 ;桔子&#34)。 y,m和d是用户输入。这是我的代码的相关部分。我做错了什么?
(经验水平:几天前刚刚开始使用Java)
String oranges;
if ((y > 2777) && (m > 2) && (d > 22)){
String oranges = "yes please";
}
else
{String oranges = "no, thanks";
}
答案 0 :(得分:2)
您也可以选择酷路线并尝试三元运算符
String oranges = ((y > 2777) && (m > 2) && (d > 22)) ? "yes please" : "no, thanks";
语法是?= then,:= else
在这种方法中,您只需要一个字符串变量。
快乐的Java编码!
答案 1 :(得分:1)
您的代码无法成功编译,您已声明oranges
两次。看看全局变量和局部变量。权利应该是这样的:
String oranges;
if ((y > 2777) && (m > 2) && (d > 22)){
oranges = "yes please";
}
else{
oranges = "no, thanks";
}
System.out.println(oranges);
答案 2 :(得分:1)
问题是重新声明orange的数据类型,第一个声明很好然后第二个问题是你的输出不应该有引号中的橙色,因为它不会输出oranges变量的值。使用引号将导致橙色作为字符串输出。
以下是我刚才解释的一个例子
{{1}}
答案 3 :(得分:0)
请尝试:
public class JavaApplication1 {
public static void main(String[] args) {
String oranges = "Any thing you want";
int y = 0;
int m = 0;
int d = 0;
if ((y > 2777) && (m > 2) && (d > 22)){
oranges = "yes please";
}
else{
oranges = "no, thanks";
}
System.out.println(y+ m + d + oranges);
}
}
答案 4 :(得分:0)
您应该将代码用作
String oranges="";
//declare y,m and d and initialize with some value or read data from user
//int y,d,m;
if ((y > 2777) && (m > 2) && (d > 22)){
oranges = "yes please";
}
else
{
oranges = "no, thanks";
}
System.out.println(y+" "+m+" "+d+" "+oranges);
答案 5 :(得分:0)
以下是一些可用于实现目标的代码,并包含System.out.printf(String, Object...)
打印方法(此方法提供的输出格式控制比单独System.out.println(String)
更多; printf
文档可以看到h̲e̲r̲e̲):
public class Solution {
public static void main(String[] args) {
// Code in which the variables y, m, and d are created and assigned proper values goes here.
String oranges = ((y > 2777) && (m > 2) && (d > 22)) ? "yes please" : "no, thanks";
System.out.printf("%d %d %d %s", y, m, d, oranges);
}
}