我正在学习java,在switch case语句和表达式方面遇到了问题。谁能帮帮我吗?我无法理解我在哪里犯了错误。
package SecondSet_StartingArray;
import java.util.Scanner;
public class Testing
{
public static void main(String[] args) {
System.out.println("Enter a Number between 1 & 100");
Scanner scan = new Scanner(System.in);
int i = scan.nextInt();
switch (i)
{
case (i>90): System.out.println("Rating 5");break;
case (i<=90): System.out.println("Rating 4");break;
case (i<=60): System.out.println("Rating 3");break;
case(i<=30): System.out.println("Rating 2");break;
case(i>29): System.out.println("Rating 1");break;
}
}
}
正如您在Java语言规范中看到的:
以下所有条件都必须为true,否则会发生编译时错误:
在您的代码中,第一点没有得到满足。您可能希望在此处使用if-else-if语句而不是
开关来正确检查存储在
i中的值。
您试图实现的是一个if-else语句<代码>开关语句用于计算常量值。
不能将switch case与布尔表达式一起使用,例如
case 90: whatever; break;
case 120: whatever; break;
case SOME_CONSTANT: whatever; break;
为了满足您的需要,您需要使用if-else-if语句。
问题内容: 我正在尝试创建一个switch语句,但似乎无法使用被求值的表达式(而不是设置的字符串/整数)。我可以轻松地使用if语句来执行此操作,但希望大小写应该更快。 我正在尝试以下 我缺少明显的东西吗?Google在这种情况下并不友好。 任何帮助/指针表示赞赏 问题答案: 你总是可以做 它之所以有效是因为它是一个常量,因此将执行第一个case语句下带有计算结果为true的表达式的代码。 我猜这有
问题内容: 为什么会出现这种错误?如果我愿意,一切都会正常。 问题答案: 可能尚未初始化,可以分配多个值。在您的示例中,它显然已初始化,但是编译器可能不知道(而且也不知道)。想像: 编译器需要中的常量,但的值取决于某些外部变量。
本文向大家介绍我们可以在JSP中使用XPath表达式的switch语句吗?,包括了我们可以在JSP中使用XPath表达式的switch语句吗?的使用技巧和注意事项,需要的朋友参考一下 在<X:选择>标签的运作方式类似于Java的switch语句。有了这个,您可以在多种选择之间进行选择。如果switch语句具有case语句,则<x:choose>标记具有<x:when>标记。以类似的方式,switc
我有一个数组,它将被迭代,并取决于条件执行任务 我已经用if else完成了这个操作,并用switch,条件是如果(1&&2)(然后执行A)else if(1)(然后执行B)else if(2)(然后执行c)else if(none)(然后执行D) if else工作正常,但是需要对Switch语句进行哪些修正 对于ref=Javascript用数组或字符串切换大小写
我开始学习布尔表达式。我正试图找出以下问题: 假设age1、age2和age3是int变量,假设答案是布尔变量。编写一个表达式,当age1小于或等于age2并且age2小于或等于age3时,该表达式将答案指定为true。否则答案应为false。 我已经尝试了一些东西,但对Java来说还是比较陌生的。我能把答案打印出来,但我的数字还是有问题。 这是错误的: 我只是不知道如何解决这个问题,或者代码中到
问题内容: 我想知道是否有一种方法可以在java switch case语句中执行不区分大小写的匹配。默认实现 区分大小写 。请参见下面的示例。 因此,以上语句作为输出返回。而且我正在尝试使其像 不区分大小写的 匹配一样工作。我尝试将字符串文字都转换为小写,然后进行比较。但无法做到。 问题答案: 如果要这样做:只需确保输入数据全部为小写,并使用小写… 本地化问题 同样,古老的本地化问题再次引起人们