相关疑难解决方法(0)

在switch语句中,为什么所有的情况都被执行了?

我有这个代码与switch我从这篇文章得到的声明,它的工作绝对正常:

String getOrdinal(final int day) {
    if (day >= 11 && day <= 13) {
        return "th";
    }
    switch (day % 10) {
        case 1: return "st";
        case 2: return "nd";
        case 3: return "rd";
        default: return "th";
    }
}
Run Code Online (Sandbox Code Playgroud)

但是,如果我将其更改为类似下面的内容,它会中断,因为除了case 1执行之外的所有情况:

  static String getOrdinal(final int day) {
    StringBuilder ordinalBuilder = new StringBuilder();
    ordinalBuilder.append("<sup>");
    if (day >= 11 && day <= 13) {
        ordinalBuilder.append("th") ;
    }
    switch (day % 10) {
        case 1: ordinalBuilder.append("st"); …
Run Code Online (Sandbox Code Playgroud)

java switch-statement

10
推荐指数
4
解决办法
1万
查看次数

Switch语句返回错误

我不久前开始学习Java,我认为制作一个可以在终端中运行的计算器.最近我添加了一个数组列表来存储历史记录,然后出了点问题.计算器程序:

import java.util.Scanner;
import java.util.ArrayList;

public class calc_case {
    public static void main(String[] args) {
        System.out.println("Welcom to The Calculator!");
        double a;
        double b;
        double c;
        Scanner input0;
        int input = 0;
        ArrayList<Double> history = new ArrayList<Double>();
        while (input != 6) {
            try {Thread.sleep(2000);} catch(InterruptedException ex) {Thread.currentThread().interrupt();}
            a = 0; b = 0; c = 0; input = 0;
            System.out.println("#################################################");
            System.out.println("How can I help you?");
            System.out.println("1-Add\n2-Subtrackt\n3-Devide\n4-Multiply\n5-Show history\n6-Exit");
            input0 = new Scanner(System.in);
            input = input0.nextInt();
            switch (input) {            
                case 1: //add
                    System.out.println("Input …
Run Code Online (Sandbox Code Playgroud)

java

1
推荐指数
1
解决办法
117
查看次数

Switch语句总是选择相同的情况

对于以下switch语句:

如果选择0-9之间的值,则输出正常.如果选择大于9的值,则输出始终为小写z.

for (int i = 0; i < 3; i++)
    {
        random[i] = randomnumber.nextInt(36);
        if (random[i] > 9)
        {
            switch(random [i])
            {
            case 10: character[i] = "A";
            case 11: character[i] = "B";
            case 12: character[i] = "C";
            case 13: character[i] = "D";
            case 14: character[i] = "E";
            case 15: character[i] = "F";
            case 16: character[i] = "G";
            case 17: character[i] = "H";
            case 18: character[i] = "I";
            case 19: character[i] = "J";
            case 20: character[i] = "K";
            case 21: …
Run Code Online (Sandbox Code Playgroud)

java

0
推荐指数
1
解决办法
69
查看次数

标签 统计

java ×3

switch-statement ×1