Java程序的输出 |第 35 组(决策)
先决条件: Java的决策
预测以下程序的输出
1. 以下程序的输出是什么?
public
class Test {
public
static void main(String[] args)
{
int x = 10;
if (x) {
System.out.println("HELLO GEEKS");
} else {
System.out.println("BYE");
}
}
}
选项:
1.你好极客
2.编译时错误
3. 运行时错误
4. 再见
输出:
The answer is option (2).
说明: if 语句的参数应该是布尔类型。错误地如果我们试图提供任何其他数据类型,那么我们将收到编译时错误,提示类型不兼容。这里的参数是 int 类型,因此我们会得到编译时错误,说 error: incompatible types: int cannot be convert to Boolean
2. 以下程序的输出是什么?
public
class Test {
public
static void main(String[] args)
{
int x = 10;
if (x)
System.out.println("HELLO GEEKS");
System.out.println("WELCOME");
else
{
System.out.println("BYE");
}
}
}
选项:
1.你好极客
欢迎
2.你好极客
3. 再见
4.编译时错误
输出:
The answer is option (4)
说明:花括号在 if 部分是可选的。如果没有花括号,则在 if 下只允许一个语句。如果我们尝试给出多个语句,那么我们将得到编译时错误,提示 error: 'else' without 'if'。
3. 下面程序的输出是什么?
public
class Test {
public
static void main(String[] args)
{
int x = 10, y = 20;
if (x < y)
int a = 10;
else {
System.out.println("BYE");
}
}
}
选项:
1. 10
2. 再见
3.无输出
4.编译时错误
输出:
The answer is option (4).
说明:在上面的程序中,if 语句中有一个没有花括号的声明性语句,这就是为什么我们会得到编译时错误消息 Error: variable declaration not allowed here 。
4.以下程序的输出是什么?
public
class Test {
public
static void main(String[] args)
{
int x = 10, y = 20;
if (x < y) {
if (x > y) {
System.out.println("HELLO GEEKS");
} else {
System.out.println("WELCOME");
}
}
}
}
输出:
1.你好极客
2.编译时错误
3. 欢迎
4. 无输出
The answer is option (3)
说明: Java没有悬空 else 问题。每个 else 都映射到最近的 if 语句。这里的内部 else if 映射到最近的 if 部分,即 if(x>y)。
5. 以下程序的输出是什么?
public
class Test {
public
static void main(String[] args)
{
if (true)
;
}
}
选项:
1. 无输出
2.编译时错误
3. 运行时错误
4. 运行时异常
输出:
The answer is option (1)
说明: ;(分号) 是一个有效的Java语句,也称为空语句。因此我们也可以在 if 语句中应用它。
6. 以下程序的输出是什么?
class Test {
public
static void main(String[] args)
{
String day = "Sunday";
switch (day) {
case "Monday":
System.out.println("Let's Work");
break;
case "Saturday":
System.out.println("waiting for Sunday");
break;
case "Sunday":
System.out.println("Today is fun day");
}
}
}
选项:
1.编译时错误
2.让我们工作
3. 运行时错误
4.今天是有趣的一天
输出:
The answer is option (4)
说明: switch 语句允许的参数类型是 byte、short、char、int,直到 1.4 版本。但是从 1.5 版本开始,也允许相应的包装类和枚举类型。从 1.7 版本开始,也允许 String 类型。详细参考这篇文章
7. 以下程序的输出是什么?
public
class MainClass {
enum day { MON,
SAT,
SUN } public static void main(String[] args)
{
day ch = day.SUN;
switch (ch) {
case MON:
System.out.println("Lets work!");
break;
case SAT:
System.out.println("Waiting for sunday");
break;
case SUN:
System.out.println("Lets have fun!");
break;
}
}
}
选项:
1. 无输出
2. 语法错误
3.让我们玩得开心!
4.编译时错误
输出:
The answer is option (3)
说明: switch 语句允许的参数类型是 byte、short、char、int,直到 1.4 版本。但是从 1.5 版本开始,也允许相应的包装类和枚举类型。从 1.7 版本开始,也允许 String 类型。
8. 以下程序的输出是什么?
class MainClass {
public
static void main(String[] args)
{
int x = 10;
Switch(x)
{
System.out.println("GEEKS");
}
}
}
选项:
1.极客
2.编译时错误
3. 无输出
4. 运行时错误
输出:
The answer is option (2)
说明:在 switch 内部,每个语句都应该在某种情况下或默认情况下,即在 switch 内部不允许独立,否则我们会得到编译时错误,说 error:';'预期的。
9. 以下程序的输出是什么?
class MainClass {
public
static void main(String[] args)
{
int x = 10;
int y = 20;
switch (x) {
case 10:
System.out.println("HELLO");
break;
case y:
System.out.println("GEEKS");
break;
}
}
}
选项:
1. 你好
2. 无输出
3.极客
4.编译时错误
输出:
The answer is option (4)
说明:每个 case 标签都应该是常量,否则我们会得到编译时错误。但是我们可以添加变量作为 case 标签,但我们必须将该变量声明为 final。但是这里我们使用变量 y 作为 case 标签,这就是为什么我们会得到编译时错误,说错误:需要常量表达式。
10. 以下程序的输出是什么?
class MainClass {
public
static void main(String[] args)
{
int x = 10;
final int y = 20;
switch (x) {
case 10:
System.out.println("HELLO");
break;
case y:
System.out.println("GEEKS");
break;
}
}
}
选项:
1.极客
2.编译时错误
3. 你好
4. 无输出
输出:
The answer is option (3)
说明:每个 case 标签都应该是常量,否则我们会得到编译时错误。但是我们可以添加变量作为 case 标签,但我们必须将该变量声明为 final。但是这里我们使用变量 y 作为案例标签,这就是为什么我们会得到 HELLO 的结果。
11. 以下程序的输出是什么?
class MainClass {
public
static void main(String[] args)
{
int x = 10;
switch (x + 1 + 1) {
case 10:
System.out.println("HELLO");
break;
case 10 + 1 + 1:
System.out.println("GEEKS");
break;
}
}
}
输出:
1.编译时错误
2.极客
3. 你好
4. 无输出
The answer is option (2).
说明: Switch 参数和 case 标签都可以是表达式。但是 case 标签应该是常量表达式。 这里 case 标签“10+1+1”被视为 case 12,switch 参数“x+1+1”也被视为 12。
12. 以下程序的输出是什么?
class MainClass {
public
static void main(String arg[])
{
char stream = 'C';
int x = 2;
switch (x) {
case 1:
System.out.println("SCIENCE, MATHS, PHYSICS");
break;
case 2:
switch (stream) {
case 'A':
System.out.println("Welcome");
break;
case 'C':
System.out.println("Geeksforgeeks");
break;
case 'B':
System.out.println("Have a nice day");
break;
}
break;
case 3:
switch (stream) {
case 'C':
System.out.println("Welcome");
break;
case 'D':
System.out.println("In");
break;
case 'E':
System.out.println("GFG");
break;
}
break;
}
}
}
选项:
1.编译时错误
2.GFG
3. 无输出
4. Geeksforgeeks
输出:
The answer is option (4)
说明:在Java可以使用嵌套 switch case。嵌套的 switch 语句是另一个 switch 语句中的 switch 语句。