Random 仅当字符串在Swift中传递了逻辑语句时,如何连接字符串?

Random 仅当字符串在Swift中传递了逻辑语句时,如何连接字符串?,random,swift,switch-statement,string-concatenation,Random,Swift,Switch Statement,String Concatenation,我的挑战有两方面: 从相似字符串数组中拾取单个字符串,但前提是首先通过了布尔测试 “Finally”我需要将生成的任何/所有字符串连接成一个完整的文本,并且整个代码必须使用Swift 说明:用于说明逻辑的信封背面代码: generatedText.text = case Int1 <= 50 && Int2 == 50 return generatedParagraph1 = pick one string at RANDOM from a

我的挑战有两方面:

  • 从相似字符串数组中拾取单个字符串,但前提是首先通过了布尔测试

  • “Finally”我需要将生成的任何/所有字符串连接成一个完整的文本,并且整个代码必须使用Swift

  • 说明:用于说明逻辑的信封背面代码:

        generatedText.text =
    
        case Int1 <= 50 && Int2 == 50
            return generatedParagraph1 = pick one string at RANDOM from a an array1 of strings
    
        case Int3 =< 100
            return generatedParagraph2 = pick one string at RANDOM from a an array2 of strings
    
        case Int4 == 100
            return generatedParagraph3 = pick one string at RANDOM from a an array3 of strings
    
        ...etc
    
        default
            return "Nothing to report"
    
    and concatenate the individual generatedParagraphs
    

    好的,我没有传递Bool,但是我展示了从[String]连接三个随机字符串。我在操场上跑的

    import Foundation
    
    var stringArray = [String]()
    
    for var i = 0; i < 100; i++ {
        stringArray.append("text" + "\(i)")
    }
    
    
    func concat (array: [String]) -> String {
        let count = UInt32(stringArray.count)
        let randomNumberOne = Int(arc4random_uniform(count))
        let randomNumberTwo = Int(arc4random_uniform(count))
        let randomNumberThree = Int(arc4random_uniform(count))
    
        let concatString = array[randomNumberOne] + array[randomNumberTwo] + array[randomNumberThree]
    
        return concatString
    }
    
    let finalString = concat(stringArray)
    
    <代码>导入基础 var stringArray=[String]() 对于var i=0;i<100;i++{ 追加(“文本”+“\(i)”) } func concat(数组:[String])->String{ let count=UInt32(stringArray.count) 设randomNumberOne=Int(arc4random_均匀(计数)) 设randomNumberTwo=Int(arc4random_均匀(计数)) 设randomNumberTree=Int(arc4random_均匀(计数)) 让concatString=数组[randomNumberOne]+数组[RandomNumberWO]+数组[RandomNumberTree] 返回字符串 } 设finalString=concat(stringArray)
    感谢您的贡献。当我在操场上运行代码时,我注意到它有些奇怪。字符串中有1个元素-->Uint32(stringarray.count)=4,有2个元素Uint32(stringarray.count)=5,有3个元素=6,以此类推。它始终会超过3。但是,如果我只运行var stringray=[“1”、“2”、“3”等]并在游乐场中单独运行计数,则计数是正确的。为什么它在功能内部与单独存在不同?Uint32搞乱了吗,我的电脑是64位的。嗯,我不明白那个问题。我也在64位机器上。我把循环计数器改为I<1,它就工作了。或者我删除了循环,只设置了stringArray=[“text”]就行了。你能把你放在操场上的代码贴出来吗?在这里我把它作为一个单独的问题贴出来:我已经玩了你的代码10个小时了,但我仍然在努力想怎么做。我是一个初学者,似乎每次我生成一组我需要的变量时,它们都超出了我需要使用它的下一个“函数”的范围,这有意义吗?我需要布尔运算,所以它会变成一个嵌套函数(我想这就是所谓的)。
    import Foundation
    
    var stringArray = [String]()
    
    for var i = 0; i < 100; i++ {
        stringArray.append("text" + "\(i)")
    }
    
    
    func concat (array: [String]) -> String {
        let count = UInt32(stringArray.count)
        let randomNumberOne = Int(arc4random_uniform(count))
        let randomNumberTwo = Int(arc4random_uniform(count))
        let randomNumberThree = Int(arc4random_uniform(count))
    
        let concatString = array[randomNumberOne] + array[randomNumberTwo] + array[randomNumberThree]
    
        return concatString
    }
    
    let finalString = concat(stringArray)