1. 程式人生 > >switch語句能否作用在byte上,能否作用在long上,能否作用在String上?

switch語句能否作用在byte上,能否作用在long上,能否作用在String上?

switchexpr1)中,expr1只能是一個整數表示式【byte,short,char,int】或者列舉常量(更大字型),整數表示式可以是int基本型別或Integer包裝型別,由於,byte,short,char都可以隱含轉換為int,所以,這些型別以及這些型別的包裝型別也是可以的。顯然,longString型別都不符合switch的語法規定,並且不能被隱式轉換成int型別,所以,它們不能作用於swtich語句中【JDK1.7以前的版本】。

【疑惑解答:】

什麼是隱含轉換?

答:其實,就是自動型別轉化,故btye,short,char都可以自動轉換為int型別,為什麼long不行尼?long轉換為int型別需要強制轉換,會丟失資料。

而long位元組比int位元組多,不能隱式轉化為int型別,所以switch語句可以用在byte上而不可以用在long上。

【補充:

另外由於在JDK7.0中引入了新特性,所以switch語句可以接收一個String型別的值,String可以作用在switch語句上。

故得出結論:在JDK1.7及以上版本String也是可以用於switch中的表示式的。

相關推薦

1用switch語句從控制檯輸入100以內的分數判斷優秀良好及格不及格屬於哪一個區間

public static void main(String[] args) {       System.out.println("請輸入成績");       Scanner scanner=new Scanner(System.in);       int num=s

java基礎面試題:switch語句能否作用byte能否作用long能否作用String?

int 包裝類 println class ava col body package 面試題 package com.swift; public class Switch_Test { public static void main(String[] args

switch 語句能否作用byte 能否作用long 能 否作用String ?

    switch只能時int 或這能轉化為int型的byte,short,char,jdk1.7之後String也可以。      在 switch( expr1)中, expr1 只能是一個整數表示式或者列舉常量(更大字型),整數表示式可以是 int 基本型別或 In

switch語句能否作用byte能否作用long能否作用String?

在switch(expr1)中,expr1只能是一個整數表示式【byte,short,char,int】或者列舉常量(更大字型),整數表示式可以是int基本型別或Integer包裝型別,由於,byte

switch語句能否作用byte 能否作用long 能否作用String

在面試寶典中是這樣解釋的“ 在switch(expr1)中,expr1只能是一個整數表示式或者列舉常量,整數表示式可以是int基本型別或Integer包裝型別,由於,byte,short,char都

面試題:switch語句能否作用byte,能否作用long,能否作用String

/**  * 問題:switch語句能否作用在byte上,能否作用在long上,能否作用在String上  * 基本型別的包裝類(如:Character、Byte、Short、Integer)  *  * switch可作用於char byte short int  *

Java面試題:switch能否作用bytelongString

1.7 季節 spa name fault des lte false 枚舉類 switch可作用於char byte short int switch可作用於char byte short int對應的包裝類 switch不可作用於long double fl

switch語句中的判斷能否bytelongString

switch(ss)     ss只能是整數表示式和列舉型別。   由於byte,short,char ,可以隱式的轉化為int型,所以它們及它們的包裝類都可以當做 switch判斷,JDK1.7引入新特性後,String也可以被switch作用 由於long不能隱式的轉化

switch是否能作用byte 是否能作用long 是否能作用String

switch可作用於char byte short int switch可作用於char byte short int對應的包裝類 switch不可作用於long double float boolean,包括他們的包裝類 public class Test { publi

Linux-C基礎知識學習:C語言作業-用switch語句實現——成績分等級90+:優 80~89良70~79良60~69及格

Linux基礎知識學習 C語言作業: 用switch語句實現——成績分等級,90+:優 80~89良上,70~79良,60~69及格,<60不及格 #include <stdio.

swtich是否能作用byte是否能作用long是否能作用String

       JDK1.7之前switch(expre1)函式中,expre1是一個整數表示式,因此傳遞給switch和case語句的引數是int、short、char或者byte。      注意,對於精度比int大的型別,比如long、float、double,不會自動轉

swtich與if else是否能作用byte作用long作用String?

http://blog.csdn.net/kobejayandy/article/details/9286579 http://blog.csdn.net/kehui123/article/details/5298337 switch(expr1)中,expr1是一個整數表

劉德:小米已投89家生態鏈企業 有品要做百億電商平臺(本質是是利用了小米的大火爐的余熱但也有反向的正面作用

效率 個人 最好 深入 網上 聯合 初創公司 方法 也有 小米科技聯合創始人、副總裁,小米生態鏈負責人劉德(微博)文/騰訊科技 王潘小米對生態鏈企業的投資正在接近雷軍(微博)當初預期的100家目標,截至6月30日,小米已經投資了89家。通過三年左右的布局,小米投資的多家生態

switch語句)(轉載)

goto語句 ret 開始 單獨 類型 -c C# 成了 clas switch語句是C#中常用的跳轉語句,可以根據一個參數的不同取值執行不同的代碼。switch語句可以具備多個分支,也就是說,根據參數的N種取值,可以跳轉到N個代碼段去運行。這不同於if語句,一條單獨的if

switch語句判斷月份打印出當前月份所在的季節

class nth htm html ase date() div IT AS var today=new Date(); var abc=today.getMonth(); switch (abc) { case 0:

switch語句 initialization of 'XXX' is skipped by 'case' label 原因及解決辦法--塊語句作用

style cas ack ase article xxx net 初始 break 出錯代碼段: switch (t) { case 0: int a = 0; break; default: break; }編譯時提示:“error C2361: initiali

微軟雲azure創建 VM虛擬機後能否向 VM 添加 NIC 網卡

虛擬機 微軟雲 azure 雲計算 網卡 微軟雲azure上創建 VM虛擬機後能否向 VM 添加 NIC網卡:能,目前可行。 首先需停止解除分配 VM。 然後便可添加或刪除 NIC(除非它是 VM 上的最後一個 NIC)。更多azure雲計算論壇資源可以訪問:https://bbs.iaz

if...else if...else和switch語句的註意點以及和js的if...else if...else的不同

沒有 char 而且 字符串常量 if 語句 ava 測試 執行 情況 java if...else if...else 語句 if 語句後面可以跟 elseif…else 語句,這種語句可以檢測到多種可能的情況。 使用 if,else if,else 語句的時候,需要註意

C語言實驗——輸入數字星期輸出英文(switch語句)

#include<stdio.h> int main() { int n; scanf("%d",&n); switch(n) { case 1: printf(“Monday”); break; case 2: printf(“Tuesday”); break; c

switch語句與三種迴圈語句JAVA程式設計師程式設計新手入門基礎學習筆記

Java是一種可以撰寫跨平臺應用軟體的面向物件的程式設計語言。Java 技術具有卓越的通用性、高效性、平臺移植性和安全性,廣泛應用於PC、資料中心、遊戲控制檯、科學超級計算機、行動電話和網際網路,同時擁有全球最大的開發者專業社群。 自己整理了-份201 8最全面前端學習資料,從最基礎的HTML+