如何switch在Kotlin中实现大小写,我们可以在Kotlin中替换java的开关大小写代码吗?我想要Kotlin中的这段代码
switch (5){
case 1:
// Do code
break;
case 2:
// Do code
break;
case 3:
// Do code
break;
}
Run Code Online (Sandbox Code Playgroud)
Zoe*_*Zoe 22
switch在 Java 中实际上是when在 Kotlin 中。但是,语法不同。
when(field){
condition -> println("Single call");
conditionalCall(field) -> {
print("Blocks");
println(" take multiple lines");
}
else -> {
println("default");
}
}
Run Code Online (Sandbox Code Playgroud)
以下是不同用途的示例:
// This is used in the example; this could obviously be any enum.
enum class SomeEnum{
A, B, C
}
fun something(x: String, y: Int, z: SomeEnum) : Int{
when(x){
"something" -> {
println("You get the idea")
}
else -> {
println("`else` in Kotlin`when` blocks are `default` in Java `switch` blocks")
}
}
when(y){
1 -> println("This works with pretty much anything too")
2 -> println("When blocks don't technically need the variable either.")
}
when {
x.equals("something", true) -> println("These can also be used as shorter if-statements")
x.equals("else", true) -> println("These call `equals` by default")
}
println("And, like with other blocks, you can add `return` in front to make it return values when conditions are met. ")
return when(z){
SomeEnum.A -> 0
SomeEnum.B -> 1
SomeEnum.C -> 2
}
}
Run Code Online (Sandbox Code Playgroud)
其中大部分编译为switch,除了when { ... },编译为一系列 if 语句。
但是对于大多数用途,如果您使用when(field),它会编译为switch(field).
但是,我确实想指出,switch(5)使用一堆分支只是浪费时间。5 始终为 5。如果您使用switch、if 语句或任何其他逻辑运算符,则应使用变量。我不确定该代码是只是一个随机示例还是实际代码。如果是后者,我会指出这一点。
nav*_*ver 18
您可以这样:
when (x) {
1 -> print("x == 1")
2 -> print("x == 2")
else -> { // Note the block
print("x is neither 1 nor 2")
}
}
Run Code Online (Sandbox Code Playgroud)
从官方帮助中提取
小智 16
when 定义具有多个分支的条件表达式。它类似于类 C 语言中的 switch 语句。它的简单形式如下所示。
when (x) {
1 -> print("x == 1")
2 -> print("x == 2")
else -> { // Note the block
print("x is neither 1 nor 2")
}
}
Run Code Online (Sandbox Code Playgroud)
when 依次将其参数与所有分支匹配,直到满足某个分支条件。
when 可以用作表达式或语句。如果将其用作表达式,则第一个匹配分支的值将成为整个表达式的值。如果将其用作语句,则忽略各个分支的值。就像 if 一样,每个分支都可以是一个块,其值是块中最后一个表达式的值。
import java.util.*
fun main(args: Array<String>){
println("Hello World");
println("Calculator App");
val scan=Scanner(System.`in`);
println("""
please choose Your Selection to perform
press 1 for addition
press 2 for substraction
press 3 for multipication
press 4 for divider
press 5 for divisible
""");
val opt:Int=scan.nextInt();
println("Enter first Value");
val v1=scan.nextInt();
println("Enter Second Value");
val v2=scan.nextInt();
when(opt){
1->{
println(sum(v1,v2));
}
2->{
println(sub(v1,v2));
}
3->{
println(mul(v1,v2));
}
4->{
println(quotient(v1,v2));
}
5->{
println(reminder(v1,v2));
}
else->{
println("Wrong Input");
}
}
}
fun sum(n1:Int,n2:Int):Int{
return n1+n2;
}
fun sub(n1:Int, n2:Int):Int{
return n1-n2;
}
fun mul(n1:Int ,n2:Int):Int{
return n1*n2;
}
fun quotient(n1:Int, n2:Int):Int{
return n1/n2;
}
fun reminder(n1:Int, n2:Int):Int{
return n1%n2;
}
Run Code Online (Sandbox Code Playgroud)
Him*_*arg 15
kotlin 中的 switch case 非常灵活
when(x){
2 -> println("This is 2")
3,4,5,6,7,8 -> println("When x is any number from 3,4,5,6,7,8")
in 9..15 -> println("When x is something from 9 to 15")
//if you want to perform some action
in 20..25 -> {
val action = "Perform some action"
println(action)
}
else -> println("When x does not belong to any of the above case")
}
Run Code Online (Sandbox Code Playgroud)
小智 7
当Expression替换类C语言的switch运算符时。以最简单的形式看起来像这样
when (x) {
1 -> print("x == 1")
2 -> print("x == 2")
else -> { // Note the block
print("x is neither 1 nor 2")
}
}
Run Code Online (Sandbox Code Playgroud)
when依次将其参数与所有分支匹配,直到满足某些分支条件。when可以用作表达式或语句。如果将其用作表达式,则满足的分支的值将成为整个表达式的值。如果将其用作语句,则忽略各个分支的值。(与if一样,每个分支可以是一个块,其值是该块中最后一个表达式的值。)
小智 7
在 kotlin 中,它们没有 switch-case 语句。但我们有when类似于 switch 的表达式\xef\xbb\xbf。就像 if-else 或 switch 一样,首先检查所有条件,如果没有匹配,则评估 else 代码。
when (n) {\n 1 -> {\n print("First")\n // run your code\n }\n 2 -> print("Second")\n 3, 4 -> print("Third or Forth") // check multiple conditions for same code\n in 1..100 -> print("Number is in the range")\n else -> {\n print("Undefined")\n }\n}\nRun Code Online (Sandbox Code Playgroud)\n开关盒不需要任何中断。
\n只需使用when关键字。如果你想做一个循环,你可以这样做:
var option = ""
var num = ""
while(option != "3") {
println("Choose one of the options below:\n" +
"1 - Hello World\n" +
"2 - Your number\n" +
"3 - Exit")
option = readLine().toString()
// equivalent to switch case in Java //
when (option) {
"1" -> {
println("Hello World!\n")
}
"2" -> {
println("Enter a number: ")
num = readLine().toString()
println("Your number is: " + num + "\n")
}
"3" -> {
println("\nClosing program...")
}
else -> {
println("\nInvalid option!\n")
}
}
}
Run Code Online (Sandbox Code Playgroud)
val operator = '+'
val a = 6
val b = 8
val res = when (operator) {
'+' -> a + b
'-' -> a - b
'*' -> a * b
'/' -> a / b
else -> 0
}
println(res);
Run Code Online (Sandbox Code Playgroud)
对于常见条件,我们使用以下代码
val operator = '+'
val a = 6
val b = 8
val res = when (operator) {
'+',
'-' -> a - b
'*',
'/' -> a / b
else -> 0
}
println(res);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
10525 次 |
| 最近记录: |