Error: switch quantity not an integer in C

Here, we will learn why an error: switch quantity not an integer occurs and how to fix it in C programming language?
By IncludeHelp Last updated : March 10, 2024

The switch statement only works with integral type of values/variables, integral types like integer, character.

Error: switch quantity not an integer

The error switch quantity not an integer occurs if the value/variables passed in the switch statement is not either integer or character.

In this example, consider the statement – switch(choice) – Here, choice is a float variable i.e. we have passed a float variable in switch statement, this is the cause of error switch quantity not an integer.

Example

#include <stdio.h>

int main(void) {
	
	float  choice = 2.0f;
	
	switch(choice){
	    case 1:
	        printf("Case 1\n");
	        break;
	    case 2:
	        printf("Case 2\n");
	        break;
	    case 3:
	        printf("Case 3\n");
	        break;
	    case 4:
	        printf("Case 4\n");
	        break;
	    default:
	        printf("Case default\n");
	}
	
	return 0;
}

Output

prog.c: In function ‘main’:
prog.c:7:9: error: switch quantity not an integer
  switch(choice){
         ^~~~~~
prog.c:5:9: warning: variable ‘choice’ set but not used [-Wunused-but-set-variable]
  float  choice = 2.0f;
         ^~~~~~

How to fix?

Use only integral variables/values with the switch statement. In this example, we changed type of choice variable from float to int.

Correct Code

#include <stdio.h>

int main(void) {
	
	int choice = 2;
	switch(choice){
	    case 1:
	        printf("Case 1\n");
	        break;
	    case 2:
	        printf("Case 2\n");
	        break;	    
	    case 3:
	        printf("Case 3\n");
	        break;	    
	    case 4:
	        printf("Case 4\n");
	        break;	    
	    default:
	        printf("Case default\n");
	}
	
	return 0;
}

Output

Case 2

C Common Errors Programs »


Comments and Discussions!

Load comments ↻






Copyright © 2024 www.includehelp.com. All rights reserved.