java常量表达式(java switch语句case后常量表达式是个范围怎么办)
本文目录
- java switch语句case后常量表达式是个范围怎么办
- Java char类型输出了数字
- Java中单个常量或变量可以作为表达式么
- 在java中,switch语句中的表达式如何转换为int类型case后面的常量式要怎么写
- java 新人求指教 下面这一段代码中在运行中说 case中必须是常量表达式 数组不能算常量吗 跪求指教
- Java中表达式和语句的区别
- J**A表达式
- Java表达式是如何显示的,使用时应注意些什么
java switch语句case后常量表达式是个范围怎么办
switch语句的判断条件可以接受int,byte,char,short,不能接受其他类型.
private enum AgeBound {
child, young, man, old, other
};
private AgeBound calcCase(int age) {
if (age 》 0 && age 《= 18) {
return AgeBound.child;
} else if (age 》 18 && age 《= 30) {
return AgeBound.young;
} else if (age 》 30 && age 《= 50) {
return AgeBound.man;
} else if (age 》 50 && age 《= 70) {
return AgeBound.old;
} else {
return AgeBound.other;
}
}
public void procAge(int age) {
switch (calcCase(age)) {
case child:
// 大量逻辑
// ......
break;
case young:
// 大量逻辑
// ......
case man:
// 大量逻辑
// ......
break;
case old:
// 大量逻辑
// ......
case other:
// 大量逻辑
// ......
default:
}
}
Java char类型输出了数字
首先三目运算符
1
假如表达式1和表达式2具有相同的类型,那么整个条件运算符结果的类型就是这个类型。
2
假如一个表达式的类型是t,t是byte或short或char,另一个表达式的类型是int类型的常量表达式,而且这个常量表达式的值是可以用类型t表示的(也就是说,常量表达式的值是在类型t的取值范围之内),那么整个条件运算符结果的类型就是t。
3
除以上情况外,假如表达式1和表达式2的类型不同,那么将进行类型提升,整个条件运算符结果的类型就是提升后的类型
由于2个都为变量
所以属于第三种情况
所以x会被提升为int类型
而字符e的ascii代码是69
所以输出69
Java中单个常量或变量可以作为表达式么
当然可以作为表达式 但是不能作为语句
还有就是注意表达式的值类型
比如 boolean b;
if(b)....;这样是对的
而 int b;
if(b)...;这样是错的
而 b; 这样的语句是错的
在java中,switch语句中的表达式如何转换为int类型case后面的常量式要怎么写
Java Switch中的表达式允许是int类型的,如下面这样使用
class Test{
public static void main(Stringargs){
int i = 10;
switch(i){
case 10 : System.out.println(10);
break;
case 20 : System.out.println(20);break;
}
}
}
希望我的回答对你有所帮助
java 新人求指教 下面这一段代码中在运行中说 case中必须是常量表达式 数组不能算常量吗 跪求指教
常量和变量 常量是不可变的 例如说1 就是1 ,不能经过赋值来改变 所以说是常量,数组里面的值可以通过赋值来改变 。当然你可以定义final的常量 ,记住是final的 。 jdk 1.7之前貌似是switch貌似只能用int,和byte类型的 ,1.7之后字符串也行 。
可以看下:
public class Dss {
public final static int num0=1;
public final static int num1=2;
public final static byte num2=3;
public static void main(String args) {
Scanner scanner = new Scanner(System.in);
int;
String;
int;
System.out.println("是否录入商品信息(y/n");
String y = scanner.next();
if (y.equals("y")) {
for (int i = 0; i 《 a.length; i++) {
System.out.println("请输入商品编号");
a = scanner.nextInt();
for (int j = 0; j 《 name.length; j++) {
System.out.println("请输入商品名字");
name = scanner.next();
for (int h = 0; h 《 num.length; h++) {
System.out.println("请输入商品价格");
num = scanner.nextInt();
}
}
}
System.out.println("请输入你要查询的编号");
int nums = scanner.nextInt();
switch (nums) {
case num0: {
System.out.println(a);
}
break;
case num1: {
System.out.println(a);
}
break;
case num2: {
System.out.println(a);
}
break;
default:
break;
}
}
}
}
Java中表达式和语句的区别
一个语句可以由一个表达式组成也可以由多个表达式组成,或者可以是没有表达式的。
例:
a=b=111111;是语句,其中常量111111就是一个表达式。
J**A表达式
Java是面向表达式的语言,Java中一个简单表达式可以是下面任意一种:● 常量:7、false。● 单引号括起来的字符字面常量:’A’、’3’。● 双引号括起来的字符串字面常量:"foo"、"Java"。● 任何正确声明的变量名:myString、x。● 任何用Java二元运算符(本章稍后将详细讨论)连接起来的两个上述类型的表达式:x+2。● 任何用Java一元运算符(本章稍后将详细讨论)修饰的单个上述类型的表达式:i++。● 任何用小括号括起来的上述类型的表达式:(x+2)。以及另外一些与本书后面将要学到的对象有关的表达式类型。无论多么复杂的表达式都可以由不同类型的简单表达式和括号嵌套组合而成,例如:((((4/x) + y) * 7) + z)。2.9.1 算术运算符 Java语言提供了许多基本的算术运算符,如表2-1所示。表2-1 Java算术运算符运算符描 述+加法-减法*乘法/除法%求余(%左边的操作数除以右边的
操作数所得到的余数,例如10%3=1)+和-运算符也可作为一元运算符用于表示正负数:-3.7、+42。除了简单赋值运算符=,还有许多特定的复合赋值运算符,这些运算符将变量赋值和算术操作合并在一起,如表2-2所示。表2-2 Java复合赋值运算符运算符描 述+=a+=b等价于a=a+b-=a-=b等价于a=a-b*=a*=b等价于a=a*b/=a/=b等价于a=a/b%=a%=b等价于a=a%b最后要介绍的两个算术运算符是一元递增运算符(++)和一元递减运算符(--),用于将整数变量的值加1或减1,或者将浮点数变量的值加1.0或减1.0。称它们为一元运算符是因为它们用于单个变量,而前面讨论的二元运算符则连接两个表达式的值。一元递增运算符和一元递减运算符也可用于将字符变量在Unicode序列中向前或向后移动一个字符位置。例如,在下面的代码片段中,字符变量c的值从’e’递增为’f’:递增和递减运算符可以以前缀或者后缀方式使用。如果运算符放在操作数之前(前缀模式),变量的递增或递减操作将在更新后的变量值被用于任何由它构成的赋值操作之前执行。例如,考虑下面的使用前缀递增运算符的代码片段,假设a和b在程序前面已经声明为int变量:上述代码执行后,变量a的值是2,变量b的值也是2。这是因为在第二行中变量a的递增(从1到2)发生在它的值赋给b之前。因此这行代码在逻辑上等价于下面两行代码: 另一方面,如果运算符放在操作数之后(后缀模式),递增或递减操作发生在原来的变量值被用于任何由它构成的赋值操作之后。看一下以后缀方式使用递增运算符的相同代码片段:上述代码执行后,变量b的值是1,而变量a的值是2。这是因为在第二行中变量a的递增(从1到2)发生在它的值赋给b之后。因此这行代码在逻辑上等价于下面两行代码:下面是一个稍微复杂一点例子,请阅读附加的注释以确保你能够明白x最终是如何被赋值为10的:稍后将会看到,递增和递减运算符通常和循环一起使用。2.9.2 关系和逻辑运算符逻辑表达式以指定的方式比较两个(简单或者复杂)表达式exp1和exp2,决议出一个boolean值true或者false。 Java提供了表2-3所示的关系运算符来创建逻辑表达式。表2-3 Java关系运算符运算符描 述exp1==exp2如果exp1等于exp2,值为true(注意使用双等号测试相等性)exp1》exp2如果exp1大于exp2,值为trueexp1》=exp2如果exp1大于等于exp2,值为trueexp1《exp2如果exp1小于exp2,值为trueexp1修饰逻辑表达式的逻辑运算符。表2-4列出了最常用的逻辑运算符。表2-4 Java逻辑运算符运算符描 述exp1&&exp2逻辑“与”,仅当exp1和exp2都为true时复合表达式值为trueexp1||exp2逻辑“或”,exp1或exp2值为true时复合表达式值为true!exp逻辑“非”,将逻辑表达式的值从true切换到false,反之亦然下面这个例子用逻辑“与”运算符来编程实现逻辑表达式“如果x大于2.0且y不等于4.0”:逻辑表达式常用于流程控制结构,本章稍后将进行讨论。2.9.3 表达式求值和运算符优先级如同本章前面提到的那样,任何复杂的表达式都可以用分层嵌套的小括号构成,例如(((8 * (y + z)) + y) x)。编译器通常按照从内到外,从左到右的顺序对这样的表达式求值。假设x、y、z按照下面的方式声明并初始化:下面的赋值语句右边的表达式:将像下面这样逐步求值:没有小括号时,根据运算符用于表达式求值的顺序,某些运算符具有高于其他运算符的优先级。例如,乘除法先于加减法执行。通过使用小括号可以强制改变运算符的优先级,括号内的运算符比括号外的先执行。考虑下面的代码片段:代码的第一行没有使用括号,乘法操作比加法操作先执行,因此整个表达式的值为2+12=14,就像我们将表达式明确地写成2+(3*4)一样,当然这样做没有必要。 在代码的第二行,括号被明确地放在操作2+3两边,因此加法操作将首先执行,然后求和结果乘以4作为整个表达式的值,即5*4=20。回到前面的例子注意到》和!=运算符优先级高于&&运算符,因此可以去掉嵌套的括号而变成下面这样:然而,额外的括号并不会对代码造成伤害,事实上它可以使表达式的目的更加清楚。2.9.4 表达式类型表达式类型是表达式最终求值结果的Java类型。例如给定下面的代码片段:表达式(x 》 2.0) && (y != 4.0)求值结果为true,因此表达式(x 》 2.0) && (y != 4.0)称为boolean型表达式。在下面的代码片段中:表达式((8 * (y + z)) + y) * x求值结果为42,因此表达式((8 * (y + z)) + y) * x称为整型表达式。
Java表达式是如何显示的,使用时应注意些什么
表达式是由变量或常量与符号的组合。注意:Java字符串双斜杠\才能表示转义,可以理解成第1个斜杠转义第2个斜杠。所以对和$这些特殊字符转义,Java里面要表示为\和\$。这个问题IDE会给我们提示。
更多文章:
适合30岁短期培训班(30岁没学历从零开始学什么技术有前途)
2026年4月12日 20:00
distribution是什么意思中文(distribution什么意思及同义词)
2026年4月12日 19:20
java常量表达式(java switch语句case后常量表达式是个范围怎么办)
2026年4月12日 19:00






