switch語句中在case塊裡宣告變數會遇到提示“Expected expression before..."的問題
例如在如下程式碼中
1 |
case 0: |
2 |
int index = 1; |
3 |
int j = 2; |
4 |
self .sum = i + j; |
5 |
break ; |
GCC在case語句之後的第一行中宣告變數時遇到問題。
這時需要在case塊兩端新增花括號,GCC就變乖了。
即:
1 |
case 0:{ |
2 |
int index = 1; |
3 |
int j = 2; |
4 |
self .sum = i + j; |
5 |
break ; |
6 |
} |
結論:
switch語句中不能宣告變數,並不是賦值問題。
其它的語句塊沒這個限制,switch語句中用的變數必須在塊外宣告,或者在case:{}花括號裡面宣告變數。
相關推薦
switch語句中在case塊裡宣告變數會遇到提示“Expected expression before..."的問題
例如在如下程式碼中 1 case 0: 2 int index = 1; 3 int j = 2; 4 self.sum = i + j; 5 break; GCC在case語句之後的第一行中宣告變數時遇到問題。 這時需要在case塊兩端新增花括號,GCC就變乖了。
對Visual C++中for語句中初始化部分宣告的變數的作用域存在的問題
在C或C++中對於在for語句中的初始化部分宣告的變數到底具有怎樣的作用域,在“INTERNATIONAL STANDARD ISO/IEC 14882(ISO/IEC 14882國際標準)”中是這樣定義的:(注:ISO/IEC 14882國際標準的內容是Program
在 php 7.3 中 switch 語句中使用 continue
在 php 7.3 中 switch 語句中使用 continue 在 php 7.3 的 switch 中使用 continue 會出現警告。1 2 3 while ($foo) { switch ($bar) { case "baz": continue
面試題--JAVA中靜態塊、靜態變數載入順序詳解
public class test { //1.第一步,準備載入類 public static void main(String[] args)
在oracle的查詢語句中的in後用變數
要想在in中用變數,需要用動態SQL: declare str_1 varchar2(100); str_2 varchar2(200); begin str_1:='11,22,33
switch語句中default用法詳解
當年學C語言switch開關語句的時候,很多人會告訴你它是這麼用的:switch(表示式){ case常量表達式1: 語句1;break; case常量表達式2: 語句2;break; … c
java中的switch語句中break和continue的區別--------總算是弄明白了
1、先上一個例子: package com.test; import java.util.ArrayList; import java.util.List; public class SwitchTest { public void ss(List<Integer> l){
關於switch語句中省略break語句的問題
在switch語句中省略了break語句,那麼匹配的case值以及以後的所有情況(包括default)都會被執行,除非遇到break或者結束為止。 此外,應該瞭解 switch(c)中的c可以使int、long、char、unsigned int等,但是唯獨不
SQL語句中CASE WHEN的使用例項
CASE 可能是 SQL 中被誤用最多的關鍵字之一。雖然你可能以前用過這個關鍵字來建立欄位,但是它還具有更多用法。例如,你可以在 WHERE 子句中使用 CASE。首先讓我們看一下 CASE 的語法。在一般的 SELECT 中,其語法如下:SELECT<myColumnSpec>=CASEWHE
switch語句中的判斷能否是byte,long或String
switch(ss) ss只能是整數表示式和列舉型別。 由於byte,short,char ,可以隱式的轉化為int型,所以它們及它們的包裝類都可以當做 switch判斷,JDK1.7引入新特性後,String也可以被switch作用 由於long不能隱式的轉化
Java筆記——switch語句中使用Enum注意點
當列舉型別用在switch語句中時,語法有一點點特別。看例子:/* * Copyright 2011 UDMS Project Zhejiang University */ package udms.core.utils; import sun.net.www.co
SQL語句中 Case具有兩種格式:簡單Case函式和Case搜尋函式
Case具有兩種格式。簡單Case函式和Case搜尋函式。 --簡單Case函式CASE sex WHEN '1' THEN '男' WHEN '2' THEN '女'ELSE '其他' END--Case搜尋函式CASE WHEN sex = '1' THEN '男'
SQL語句中case when函式的用法
前一段時間進行一段比較複雜的資料庫業務查詢需要對查詢出來的資料進行分類統計 ,用到了資料庫的case函式,這時才注意到這個函式有兩種用。 一種是: case 欄位名 when 欄位值 then 值 else 值2 end 這一種是之前比較常用的一種方式,相當於是大部分
SQL語句的寫法:update語句中 case...when 用法
update語句結合case when例子: 根據master_id和class_idx來更新資料 如圖: sql語句:update table_name set ins_comp_id='111',bxgs_fl_id='111',total_money = ca
SQL語句中case、when、then的使用
使用語法為:select `pro`.`id` AS `id`,`pro`.`title` AS `title`,`pro`.`name` AS `name`,`pro`.`ltime` AS `ltime`,`pro`.`place` AS `place`,`pro`.`l
Spring中注入static靜態成員變數會導致空指標異常問題及解決方案
首先,,按照常規的注入,,我們會直接在需要注入的物件上加註解@Autowired,,,執行服務的的時候,,,就會出現呢空指標異常java.lang.NullPointerException,,異常的原因是 靜態變數/類變數不是物件的屬性,而是一個類的屬性,spring則是基於
android中不小心使用靜態變數會導致記憶體洩露
在android 專案開發過程中,不小心可能就會導致activity的記憶體洩露,即使使用者在使用APP的時候並沒有感受到記憶體洩露給APP帶來毀滅性的奔潰,但我們開發者可以通過除錯能夠很明顯的看到有些佔用的記憶體死也GC不掉。 OK ,隔壁家老伍來講解
Switch Case語句中多個值匹配同一個代碼塊的寫法
har com arch mssql pre html www ase cas switch ($p) { case ‘home‘: case ‘‘: $current_home = ‘current‘; break
C語言switch case語句中定義變數問題
這個問題需要分開討論,C 語言和 C++ 的標準定義是不同的。 C++ int Caset(int a) { switch (a) { case 1: int b = 1; st
C語言中switch...case語句中break的重要性
不能 實現 比例 重要性 case語句 毫無 ... 應該 switch 在C語言中switch...case語句是經常用到的,下面我介紹一下在使用該語句時候需要註意的一個細節問題。話不多說,直接舉例子: 例子1: switch(fruit) { case 1:printf